:root {
  --bg: #f7f5f0;
  --card: #fff;
  --ink: #1d1a2b;
  --muted: #625d78;
  --line: #e6e0d4;
  --brand: #5b3df5;
  --brand-dark: #4528d8;
  --soft: #ece8ff;
  --error: #ab2d19;
  --warning: #714600;
  --success: #19663b;
  --radius: 18px;
  color-scheme: light;
  /* Fontes do sistema com cobertura para árabe, hebraico, devanágari, tailandês e CJK. */
  --font-stack: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial,
    "Noto Sans Arabic", "Segoe UI Arabic", "Noto Sans Hebrew", "Noto Sans Devanagari", Nirmala UI,
    "Noto Sans Thai", "Leelawadee UI", "Hiragino Sans", "Noto Sans CJK JP", "Yu Gothic UI", Meiryo,
    "PingFang SC", "Microsoft YaHei", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
  font-family: var(--font-stack);
}
/* CJK: a ordem das fontes evita glifos de outra região (unificação Han). */
:lang(ja) { font-family: system-ui, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans CJK JP", "Noto Sans JP", sans-serif; }
:lang(zh-Hans) { font-family: system-ui, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", "Source Han Sans SC", sans-serif; }
:lang(zh-Hant) { font-family: system-ui, "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", "Noto Sans TC", "Source Han Sans TC", sans-serif; }
:lang(ko) { font-family: system-ui, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans CJK KR", "Noto Sans KR", sans-serif; }
:lang(ar) { font-family: system-ui, "Segoe UI", "Noto Sans Arabic", "Geeza Pro", Tahoma, sans-serif; }
:lang(he) { font-family: system-ui, "Segoe UI", "Noto Sans Hebrew", Arial, sans-serif; }
:lang(hi) { font-family: system-ui, "Nirmala UI", "Noto Sans Devanagari", "Kohinoor Devanagari", sans-serif; }
:lang(th) { font-family: system-ui, "Leelawadee UI", "Noto Sans Thai", Thonburi, sans-serif; }
:lang(ja), :lang(zh-Hans), :lang(zh-Hant), :lang(ko), :lang(th), :lang(hi), :lang(ar), :lang(he) { letter-spacing: normal; }
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 24px;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-size: 15px;
  line-height: 1.55;
  /* Palavras longas (alemão, finlandês, húngaro…) quebram em vez de alargar a página. */
  overflow-wrap: break-word;
  hyphens: auto;
}
h1, h2, h3, label, button, summary, th, .pill, .eyebrow, .metric-label, .field-label, dt { overflow-wrap: anywhere; }
/* Números e unidades em páginas RTL: a direção vem do próprio conteúdo. */
[dir=rtl] .metric-value, [dir=rtl] .breakdown dd, [dir=rtl] .alkali-row strong, [dir=rtl] #oil-total,
[dir=rtl] #oil-total-inline, [dir=rtl] .weight-note, [dir=rtl] .sap-info, [dir=rtl] .price-highlight strong,
[dir=rtl] td.num, [dir=rtl] .comparison td, [dir=rtl] #print-sheet td { unicode-bidi: plaintext; }
[dir=rtl] input[inputmode=decimal], [dir=rtl] #scale-value { direction: ltr; text-align: end; }
[dir=rtl] .dir-arrow, [dir=rtl] .flip-rtl { display: inline-block; transform: scaleX(-1); }
a {
  color: var(--brand-dark);
  text-underline-offset: 3px;
}
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
button,
.button {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 15px;
  background: var(--card);
  font-weight: 650;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  min-height: 44px;
  color: var(--ink);
}
button:hover,
.button:hover {
  border-color: var(--brand);
  color: var(--brand-dark);
}
button.primary,
.button.primary {
  background: var(--brand);
  border-color: var(--brand);
  color: white;
}
button.primary:hover {
  background: var(--brand-dark);
}
.subtle {
  background: var(--soft);
  color: var(--brand-dark);
  border-color: transparent;
}
.danger {
  color: var(--error);
}
:focus-visible {
  outline: 3px solid var(--brand);
  outline-offset: 3px;
}
input,
select,
textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid #c9c4d2;
  border-radius: 8px;
  padding: 9px 10px;
  background: var(--card);
}
input[type="checkbox"] {
  width: 20px;
  min-height: 20px;
  accent-color: var(--brand);
}
textarea {
  resize: vertical;
  min-height: 90px;
}
input[aria-invalid="true"],
select[aria-invalid="true"] {
  border: 2px solid var(--error);
  background: #fff9f7;
}
label,
.field-label {
  display: block;
  font-size: 13px;
  font-weight: 650;
  margin-bottom: 6px;
}
.field {
  min-width: 0;
}
.field-error {
  display: block;
  color: var(--error);
  font-size: 12px;
  margin-top: 4px;
}
.field-error:empty {
  display: none;
}
.hint {
  font-size: 12px;
  color: var(--muted);
  margin: 5px 0 0;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
[hidden] {
  display: none !important;
}
.skip {
  position: absolute;
  inset-inline-start: 14px;
  top: -100px;
  background: var(--brand);
  color: #fff;
  padding: 12px;
  z-index: 99;
}
.skip:focus {
  top: 8px;
}
.wrap {
  max-width: 1360px;
  padding: 0 32px;
  margin: auto;
}
.site-header {
  background: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid var(--line);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 76px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  text-decoration: none;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -0.7px;
}
.brand-mark {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: var(--brand);
  color: #fff;
  font-size: 23px;
  transform: rotate(-5deg);
}
nav {
  display: flex;
  gap: 23px;
  align-items: center;
}
nav a {
  text-decoration: none;
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
}
nav a:hover {
  color: var(--brand);
}
.intro {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 32px 0 22px;
}
.eyebrow {
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.7px;
  color: var(--brand-dark);
  margin: 0 0 9px;
}
h1 {
  font-size: clamp(27px, 4vw, 38px);
  letter-spacing: -1.5px;
  line-height: 1.15;
  margin: 0 0 10px;
}
h1 em {
  font-style: normal;
  color: var(--brand);
}
h2 {
  font-size: 19px;
  line-height: 1.3;
  letter-spacing: -0.4px;
  margin: 0;
}
h3 {
  font-size: 16px;
  margin: 0 0 10px;
}
p {
  margin: 0 0 14px;
}
.intro p:last-child {
  color: var(--muted);
  margin: 0;
  max-width: 680px;
}
.local-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--success);
  white-space: nowrap;
}
.dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--success);
}
.work-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.example-picker {
  display: flex;
  gap: 8px;
  align-items: center;
}
.example-picker select {
  width: 225px;
  font-size: 13px;
}
.workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  gap: 22px;
  align-items: start;
}
.editor {
  display: grid;
  gap: 18px;
  min-width: 0;
}
.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: 0 2px 3px #1d1a2b03;
}
.card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.section-title {
  display: flex;
  gap: 10px;
  align-items: center;
}
.step {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  flex-shrink: 0;
  background: var(--soft);
  color: var(--brand-dark);
  font-size: 12px;
  font-weight: 750;
  border-radius: 8px;
}
.pill {
  font-size: 11px;
  font-weight: 700;
  border-radius: 99px;
  padding: 5px 10px;
  background: var(--bg);
  color: var(--muted);
}
.grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.full {
  grid-column: 1/-1;
}
.inline-picker {
  display: flex;
  gap: 8px;
  margin: 16px 0 12px;
}
.inline-picker select {
  flex: 1;
  min-width: 0;
}
.inline-picker button {
  flex-shrink: 0;
}
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.data-table caption {
  text-align: start;
  padding: 10px 0;
  font-weight: 700;
}
.data-table th {
  text-align: start;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  letter-spacing: 0.3px;
  background: #faf9fc;
  padding: 10px 8px;
  border-bottom: 1px solid var(--line);
}
.data-table td {
  padding: 12px 8px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.data-table td:first-child {
  padding-inline-start: 0;
}
.data-table input {
  font-size: 13px;
  padding: 8px;
  min-width: 65px;
}
.data-table .amount-cell {
  width: 100px;
}
.data-table .price-cell {
  width: 100px;
}
.data-table .remove-cell {
  width: 42px;
  padding-inline-end: 0;
}
.remove {
  width: 34px;
  min-height: 44px;
  padding: 0;
  color: var(--muted);
  font-size: 21px;
}
.oil-name {
  font-weight: 650;
  display: block;
  margin: 3px 0;
}
.sap-info {
  display: block;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.5;
}
.sap-info a {
  color: var(--brand-dark);
}
.weight-note {
  font-size: 11px;
  color: var(--muted);
  display: block;
  margin-top: 5px;
}
.total-line {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 0 0;
  font-weight: 750;
}
.text-button {
  padding: 8px 0;
  border: 0;
  min-height: 36px;
  color: var(--brand-dark);
  background: transparent;
  font-size: 13px;
}
.summary {
  position: sticky;
  top: 20px;
  display: grid;
  gap: 16px;
}
.summary-main {
  border-top: 4px solid var(--brand);
  padding-top: 19px;
}
.summary-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}
.live {
  font-size: 10px;
  font-weight: 650;
  color: var(--success);
  display: flex;
  align-items: center;
  gap: 5px;
}
.metric-label {
  color: var(--muted);
  font-size: 12px;
  display: block;
}
.metric-value {
  font-size: 31px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -1px;
  display: block;
  margin: 5px 0;
}
.metric-value small {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
}
.metrics-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 20px 0;
}
.metric-box {
  background: var(--bg);
  border-radius: 12px;
  padding: 14px;
}
.metric-box .metric-value {
  font-size: 23px;
}
.alkali-box {
  background: var(--soft);
  border-radius: 12px;
  padding: 15px;
  margin: 14px 0;
}
.alkali-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
}
.alkali-row strong {
  font-size: 24px;
  letter-spacing: -0.7px;
}
.alkali-row small {
  font-size: 13px;
  font-weight: 500;
}
.breakdown {
  display: grid;
  gap: 9px;
  margin: 15px 0;
  font-size: 13px;
}
.breakdown > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.breakdown dt {
  color: var(--muted);
}
.breakdown dd {
  font-weight: 650;
  margin: 0;
  text-align: end;
}
.rule {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 18px 0;
}
.price-highlight {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--soft);
  padding: 13px;
  border-radius: 12px;
  margin-top: 14px;
}
.price-highlight strong {
  font-size: 22px;
  color: var(--brand-dark);
}
.note {
  padding: 13px 15px;
  border-radius: 10px;
  background: #f5f2e8;
  color: #63502d;
  font-size: 12px;
  line-height: 1.6;
}
.note p:last-child {
  margin: 0;
}
.status-list {
  padding: 0;
  list-style: none;
  margin: 0;
  display: grid;
  gap: 10px;
}
.status-list li {
  font-size: 12px;
  padding: 12px;
  border-radius: 10px;
  background: #fff5df;
  color: var(--warning);
}
.status-list li.error {
  background: #fff0eb;
  color: var(--error);
}
.composition {
  display: flex;
  height: 8px;
  overflow: hidden;
  border-radius: 20px;
  margin: 14px 0;
}
.composition span:nth-child(4n + 1) {
  background: #5b3df5;
}
.composition span:nth-child(4n + 2) {
  background: #9c8aee;
}
.composition span:nth-child(4n + 3) {
  background: #c7bff5;
}
.composition span:nth-child(4n) {
  background: #e0dafc;
}
.cost-total {
  font-weight: 750;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}
.mold-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  background: var(--bg);
  padding: 14px;
  border-radius: 12px;
  margin-top: 15px;
}
.mold-result strong {
  display: block;
  font-size: 19px;
}
.banner {
  padding: 12px 16px;
  background: var(--soft);
  border: 1px solid #d0c5ff;
  border-radius: 10px;
  color: var(--brand-dark);
  margin-bottom: 15px;
  font-size: 13px;
}
.library {
  margin-top: 22px;
}
.recipe-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 15px;
}
.recipe-item {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
  min-width: 0;
}
.recipe-item h3 {
  overflow-wrap: anywhere;
}
.recipe-item .actions {
  margin-top: 12px;
}
.recipe-item button {
  font-size: 12px;
  padding: 7px 9px;
}
.check-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  font-size: 12px;
}
.empty-state {
  padding: 25px;
  background: var(--bg);
  border: 1px dashed #c9c4d2;
  border-radius: 12px;
  text-align: center;
  color: var(--muted);
  font-size: 14px;
  grid-column: 1/-1;
}
.guides {
  margin: 48px 0;
}
.guide-heading {
  margin-bottom: 24px;
}
.guide-heading h2 {
  font-size: 27px;
  margin-bottom: 8px;
}
.guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.guide-grid article {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.guide-grid article p {
  font-size: 14px;
  color: var(--muted);
}
.guide-grid article a {
  font-size: 13px;
  font-weight: 650;
}
.faq {
  max-width: 850px;
  margin: 38px auto;
}
.faq h2 {
  margin-bottom: 16px;
}
.faq details {
  border-bottom: 1px solid var(--line);
  padding: 15px 0;
}
.faq summary {
  font-weight: 650;
  cursor: pointer;
  padding: 8px 0;
}
.faq details p {
  color: var(--muted);
  font-size: 14px;
  padding: 10px 0;
}
.site-footer {
  border-top: 1px solid var(--line);
  padding: 24px 0;
  color: var(--muted);
  font-size: 12px;
}
.footer-inner {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
}
.footer-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.footer-links a {
  color: var(--muted);
}
dialog {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 25px;
  width: min(720px, calc(100vw - 32px));
  max-height: 85vh;
  background: var(--card);
  color: var(--ink);
  box-shadow: 0 20px 80px #1d1a2b30;
}
dialog::backdrop {
  background: #1d1a2b66;
}
.dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.dialog-head h2 {
  margin: 0;
}
dialog .actions {
  margin-top: 20px;
}
.history-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.table-scroll {
  overflow-x: auto;
}
.comparison th,
.comparison td {
  padding: 12px;
  text-align: start;
  min-width: 120px;
  border-bottom: 1px solid var(--line);
}
.comparison {
  border-collapse: collapse;
  width: 100%;
  font-size: 13px;
}
.comparison th:first-child {
  min-width: 160px;
}
.prose {
  max-width: 900px;
  margin: 36px auto 60px;
  line-height: 1.75;
}
.prose h1 {
  margin: 20px 0;
}
.prose h2 {
  margin: 30px 0 12px;
}
.prose table {
  font-size: 13px;
  border-collapse: collapse;
  width: 100%;
}
.prose th,
.prose td {
  text-align: start;
  padding: 10px;
  border-bottom: 1px solid var(--line);
}
.prose code {
  background: var(--soft);
  padding: 3px;
  border-radius: 5px;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.prose li {
  margin-bottom: 10px;
}
.print-only {
  display: none;
}
.confirm-copy {
  font-size: 14px;
  white-space: pre-line;
}
.source-line {
  font-size: 12px;
  color: var(--muted);
}
.progress-label {
  font-size: 12px;
  color: var(--muted);
}
.section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin: 0 0 20px;
}
.section-nav a {
  font-size: 12px;
  padding: 6px 0;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
}
.summary {
  position: static;
}
.data-table .field > label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (min-width: 1500px) {
  .wrap {
    max-width: 1450px;
  }
  .workspace {
    grid-template-columns: minmax(0, 1fr) 380px;
  }
}
@media (max-width: 1050px) {
  .wrap {
    padding: 0 22px;
  }
  .workspace {
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 16px;
  }
  .card {
    padding: 18px;
  }
  .grid.three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .work-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .intro .local-badge {
    display: none;
  }
}
@media (max-width: 800px) {
  .workspace {
    grid-template-columns: 1fr;
  }
  .summary {
    position: static;
    grid-template-columns: 1fr 1fr;
  }
  .summary-main {
    grid-row: span 2;
  }
  .guide-grid {
    grid-template-columns: 1fr;
  }
  .recipe-list {
    grid-template-columns: 1fr 1fr;
  }
  .header-inner nav {
    gap: 14px;
  }
  .header-inner nav a {
    font-size: 12px;
  }
  .intro {
    padding-top: 25px;
  }
}
@media (max-width: 540px) {
  .wrap {
    padding: 0 14px;
  }
  .header-inner {
    min-height: 65px;
  }
  .header-inner nav a:nth-child(2) {
    display: none;
  }
  .brand {
    font-size: 18px;
  }
  .brand-mark {
    width: 31px;
    height: 31px;
  }
  .intro h1 {
    font-size: 29px;
    letter-spacing: -1px;
  }
  .intro p {
    font-size: 14px;
  }
  .work-toolbar .actions {
    gap: 6px;
  }
  .work-toolbar button {
    padding: 9px 11px;
    font-size: 12px;
  }
  .card {
    padding: 17px 14px;
  }
  .card-head {
    gap: 8px;
  }
  .card-head h2 {
    font-size: 17px;
  }
  .grid,
  .grid.three {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .grid .field.wide-mobile {
    grid-column: 1/-1;
  }
  .summary {
    grid-template-columns: 1fr;
  }
  .summary-main {
    grid-row: auto;
  }
  .recipe-list {
    grid-template-columns: 1fr;
  }
  .data-table,
  .data-table tbody,
  .data-table tr,
  .data-table td {
    display: block;
  }
  .data-table thead {
    display: none;
  }
  .data-table tr {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    border-bottom: 1px solid var(--line);
    padding: 12px 0;
  }
  .data-table td {
    border: 0;
    padding: 0 !important;
    width: auto !important;
  }
  .data-table td:first-child {
    grid-column: 1/-1;
    padding-inline-end: 38px !important;
  }
  .data-table td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-size: 11px;
    color: var(--muted);
    margin-bottom: 4px;
  }
  .data-table .remove-cell {
    position: absolute;
    inset-inline-end: 0;
    top: 12px;
  }
  .data-table input {
    width: 100%;
  }
  .inline-picker {
    flex-wrap: wrap;
  }
  .inline-picker select {
    flex-basis: 60%;
  }
  .mold-result {
    align-items: stretch;
    flex-direction: column;
  }
  .footer-inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .guides {
    margin-top: 35px;
  }
  .example-picker {
    width: 100%;
  }
  .example-picker select {
    flex: 1;
    min-width: 0;
    width: 100px;
  }
  .actions .button {
    font-size: 12px;
  }
  .grid.one-mobile {
    grid-template-columns: 1fr;
  }
  .guide-heading h2 {
    font-size: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    transition: none !important;
  }
}
@media print {
  @page {
    size: A4;
    margin: 15mm;
  }
  body {
    background: #fff;
    color: #000;
    font-size: 10pt;
  }
  .site-header,
  .intro,
  .work-toolbar,
  .workspace,
  .library,
  .guides,
  .faq,
  .site-footer,
  dialog,
  .banner,
  .skip,
  .no-print {
    display: none !important;
  }
  .print-only {
    display: block;
  }
  #print-sheet {
    display: block;
  }
  #print-sheet h1 {
    font-size: 23pt;
    letter-spacing: 0;
  }
  #print-sheet h2 {
    font-size: 14pt;
    margin-top: 18px;
  }
  #print-sheet table {
    width: 100%;
    border-collapse: collapse;
    font-size: 9pt;
  }
  #print-sheet th,
  #print-sheet td {
    border-bottom: 1px solid #ccc;
    text-align: start;
    padding: 6px;
    overflow-wrap: anywhere;
  }
  #print-sheet tr {
    break-inside: avoid;
  }
  #print-sheet .print-warning {
    padding: 10px;
    border: 1px solid #777;
  }
  #print-sheet p {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
  }
  .wrap {
    max-width: none;
    padding: 0;
  }
  .print-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}

/* Seletor de idioma: links rastreáveis para a mesma página em cada idioma publicado. */
.lang-switch { position: relative; flex-shrink: 0; }
.lang-switch > summary { display: flex; align-items: center; gap: 6px; min-height: 34px; max-width: 190px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--card); color: var(--ink); font-size: 12px; font-weight: 650; cursor: pointer; list-style: none; }
.lang-switch > summary::-webkit-details-marker { display: none; }
.lang-switch > summary > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow-wrap: normal; }
.lang-switch > summary > svg { flex: 0 0 16px; }
.lang-switch nav { position: absolute; z-index: 30; inset-inline-end: 0; top: calc(100% + 8px); display: block; width: min(250px, calc(100vw - 32px)); max-height: min(420px, calc(100dvh - 90px)); overflow: auto; padding: 6px; margin: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--card); box-shadow: 0 12px 40px #1d1a2b20; }
.lang-switch ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.lang-switch a { display: block; padding: 8px 10px; border-radius: 7px; color: var(--ink); font-size: 13px; text-decoration: none; }
.lang-switch a:hover, .lang-switch a:focus-visible { background: var(--bg); }
.lang-switch a[aria-current=page] { background: var(--soft); color: var(--brand-dark); font-weight: 700; }
@media (max-width: 540px) { .lang-switch > summary { max-width: 120px; padding-inline: 8px; } }
@media (max-width: 360px) { .lang-switch > summary > span { display: none; } }
@media print { .lang-switch { display: none !important; } }

/* Raiz: escolha de idioma, sem redirecionamento. */
.chooser { max-width: 880px; padding-block: 48px 64px; }
.chooser-brand { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 24px; font-weight: 800; letter-spacing: -0.7px; }
.chooser-brand img { border-radius: 10px; }
.chooser h1 { margin: 0 0 8px; font-size: clamp(26px, 5vw, 38px); line-height: 1.15; }
.chooser-lead { margin: 0 0 26px; max-width: 640px; color: var(--muted); }
.chooser-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px; }
.chooser-list a { display: flex; flex-direction: column; gap: 2px; height: 100%; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); color: var(--ink); text-decoration: none; }
.chooser-list a:hover, .chooser-list a:focus-visible { border-color: var(--brand); }
.chooser-list a span { color: var(--muted); font-size: 13px; }
.chooser-list a.is-suggested { border: 2px solid var(--brand); background: var(--soft); }
