/* Plaino — ajustes de uso no iPad aplicados sobre o build compilado.
   Carregado depois de index-*.css; remover este arquivo e a linha no
   index.html restaura o visual original. */

/* Rótulos dos botões da peça não quebram no meio da palavra. */
.ipad-studio .ipad-context-buttons .ipad-chrome-button span {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* Com cinco ações (Mover, Girar, Tamanho, Medidas, Mais), Medidas ocupa
   duas colunas para caber em qualquer idioma. */
.ipad-studio .ipad-context-buttons > :nth-child(4):nth-last-child(2) {
  grid-column: span 2;
}

.ipad-studio .ipad-context-buttons .ipad-chrome-button {
  min-height: 56px;
}

/* Medidas da peça: valores maiores, alinhados e com área de toque de 44 px. */
.ipad-studio .ipad-wood-editor .touch-interaction-measures {
  border-radius: 12px;
  transition: background-color 120ms ease;
}

.ipad-studio .ipad-wood-editor .touch-interaction-measures:active {
  background-color: rgba(216, 119, 69, 0.12);
}

.ipad-studio .ipad-wood-editor .touch-interaction-measure {
  min-height: 44px;
  align-items: center;
}

.ipad-studio .ipad-wood-editor .touch-interaction-measure span {
  font-size: 13px;
}

.ipad-studio .ipad-wood-editor .touch-interaction-measure strong {
  font-size: 17px;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* Editar peça: as abas tinham quatro colunas fixas (~67 px) menores que
   as palavras e se sobrepunham. Agora cada coluna tem no mínimo 104 px:
   painel estreito fica 2×2, painel largo fica em uma linha. */
.ipad-studio .ipad-inspector-compact .inspector-tabs {
  grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
  gap: 2px 4px;
  overflow: visible;
}

.ipad-studio .ipad-inspector-compact .inspector-tabs button {
  min-width: 0;
  white-space: nowrap;
}

/* Campos numéricos: o valor ficava espremido (27 px) e aparecia cortado
   ("86," em vez de 86,19). O campo cresce e o rótulo cede espaço. */
.number-box input {
  flex: 1 1 auto;
  min-width: 5.5ch;
  text-overflow: clip;
  font-variant-numeric: tabular-nums;
  color: #1c1c1e;
}

.ipad-studio .ipad-inspector-compact .numeric-field .field-label {
  flex: 1 1 0;
  min-width: 0;
  overflow-wrap: normal;
}

.ipad-studio .ipad-inspector-compact .numeric-field .number-box {
  flex: 0 0 auto;
  width: min(184px, 58%);
}

/* Lista de corte: chapa, largura, serra e margem em 4 colunas estreitas
   escondiam o valor. Em retrato ficam em 2 colunas. */
@media (max-width: 900px) {
  .ipad-studio .cutlist-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ipad-studio .cutlist-fields .number-box input {
  min-width: 4ch;
}

/* Montagem e rotação (X/Y/Z lado a lado): cada caixa tinha mínimo de
   154 px em colunas de ~100 px, então as três se sobrepunham e a última
   saía do painel. */
.ipad-studio .three-fields .numeric-field .number-box {
  width: 100%;
  min-width: 0;
}

.ipad-studio .three-fields .number-box input {
  min-width: 0;
  text-align: center;
}

/* Rótulo em duas linhas ("Z · profundidade") não desalinha as caixas. */
.ipad-studio .three-fields .numeric-field {
  justify-content: space-between;
}

/* "Apoiar no chão" e "Zerar rotação" ficavam colados como texto solto. */
.ipad-studio .beginner-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.ipad-studio .beginner-action-grid button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 10px;
  border: 1px solid #d9d9de;
  border-radius: 10px;
  background: #fff;
  white-space: nowrap;
}

.ipad-studio .beginner-action-grid button:active:not(:disabled) {
  background: rgba(216, 119, 69, 0.12);
}

/* Catálogo de encaixes: até 760 px a fileira dos 17 tipos esticava a
   janela para ~2.470 px e cortava busca e cartões na borda direita. */
@media (max-width: 760px) {
  .joinery-choice,
  .joinery-configure {
    grid-template-columns: minmax(0, 1fr);
  }
}

.joinery-kind-sidebar,
.joinery-config-sidebar {
  min-width: 0;
}

/* Textos do catálogo (10–13 px) legíveis à distância de uso no iPad. */
.joinery-dialog .joinery-card-copy strong { font-size: 16px; }
.joinery-dialog .joinery-card-copy span,
.joinery-dialog .joinery-card-copy small { font-size: 14px; line-height: 1.35; }
.joinery-dialog .joinery-card-copy em { font-size: 13px; }
.joinery-dialog .joinery-eyebrow,
.joinery-dialog .joinery-count,
.joinery-kind-sidebar > p { font-size: 12px; }
.joinery-dialog .joinery-kind-list button,
.joinery-dialog .joinery-tabs span { font-size: 14px; }

/* Atalho para a lista de corte, ao lado de desfazer/refazer. */
.plaino-cut-shortcut {
  position: fixed;
  z-index: 30;
  display: none;
  align-items: center;
  gap: 8px;
  height: 56px;
  padding: 0 18px 0 16px;
  border: 0;
  border-radius: 18px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  background: #b4643a;
  box-shadow: 0 6px 18px rgba(80, 40, 15, 0.22);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.plaino-cut-shortcut.is-visible {
  display: inline-flex;
}

.plaino-cut-shortcut.is-compact {
  padding: 0;
  width: 56px;
  justify-content: center;
}

.plaino-cut-shortcut.is-compact span {
  display: none;
}

.plaino-cut-shortcut:active {
  transform: scale(0.97);
  background: #9c5530;
}

.plaino-cut-shortcut svg {
  flex: none;
}

/* Botão Plaino Pro na biblioteca de projetos (somente no app nativo). */
.plaino-pro-button {
  position: fixed;
  z-index: 30;
  display: none;
  align-items: center;
  padding: 0 18px;
  border: 1px solid rgba(180, 100, 58, 0.35);
  border-radius: 14px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 650;
  color: #9c5530;
  background: #fbefe7;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.plaino-pro-button.is-visible {
  display: inline-flex;
}

.plaino-pro-button.is-pro {
  color: #3d6b4f;
  border-color: rgba(61, 107, 79, 0.3);
  background: #eaf3ed;
}

.plaino-pro-button:active {
  transform: scale(0.97);
}

/* Botão flutuante "Apoiar o Plaino" (somente na web). Mais evidente: maior,
   com degradê, brilho e um pulso suave de atenção (desligado se o usuário
   pede menos movimento). */
.plaino-support-button {
  position: fixed;
  z-index: 40;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  display: none;
  align-items: center;
  gap: 9px;
  height: 54px;
  padding: 0 22px;
  border: 0;
  border-radius: 27px;
  font-family: inherit;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: 0.1px;
  line-height: 1;
  color: #fff;
  background: linear-gradient(135deg, #c86f3f, #ab5a30);
  box-shadow: 0 10px 26px rgba(110, 52, 18, 0.34), 0 0 0 0 rgba(200, 111, 63, 0.4);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: transform 140ms ease, filter 140ms ease;
}

.plaino-support-button.is-visible {
  display: inline-flex;
  animation: plaino-support-pulse 2.8s ease-in-out infinite;
}

.plaino-support-button svg {
  flex: none;
  width: 20px;
  height: 20px;
}

.plaino-support-button:hover {
  filter: brightness(1.04);
  transform: translateY(-1px);
}

.plaino-support-button:active {
  transform: scale(0.97);
}

@keyframes plaino-support-pulse {
  0%,
  100% {
    box-shadow: 0 10px 26px rgba(110, 52, 18, 0.34), 0 0 0 0 rgba(200, 111, 63, 0.42);
  }
  50% {
    box-shadow: 0 13px 30px rgba(110, 52, 18, 0.4), 0 0 0 11px rgba(200, 111, 63, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .plaino-support-button.is-visible {
    animation: none;
  }
}

/* Modal de apoio. */
.plaino-support-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(30, 18, 8, 0.42);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

.plaino-support-overlay.is-open {
  display: flex;
}

.plaino-support-modal {
  position: relative;
  width: min(380px, 100%);
  box-sizing: border-box;
  padding: 28px 24px 22px;
  border-radius: 20px;
  background: #fffaf4;
  box-shadow: 0 24px 60px rgba(40, 20, 5, 0.34);
  text-align: center;
  font-family: inherit;
}

.plaino-support-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 14px;
  border-radius: 50%;
  color: #b4643a;
  background: #fbede3;
}

.plaino-support-badge svg {
  width: 26px;
  height: 26px;
}

.plaino-support-modal h2 {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 750;
  color: #2a1d12;
}

.plaino-support-modal p {
  margin: 0 0 20px;
  font-size: 15px;
  line-height: 1.5;
  color: #5a4a3c;
}

.plaino-support-cta {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 13px 16px;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  background: #b4643a;
  text-decoration: none;
}

.plaino-support-cta:hover {
  background: #a2572f;
}

.plaino-support-later {
  margin-top: 10px;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: #8a7868;
  cursor: pointer;
}

.plaino-support-close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  font-size: 24px;
  line-height: 1;
  color: #9a8574;
  cursor: pointer;
}

.plaino-support-close:hover {
  background: rgba(0, 0, 0, 0.05);
}

/* Balões de dica dos atalhos (resize/move). Flutuam ao lado do controle e
   nunca bloqueiam o clique (pointer-events: none). Criados só na web+desktop
   pelo plaino-ajustes.js, e somem quando o atalho já foi usado. */
.plaino-hint {
  position: fixed;
  z-index: 45;
  padding: 6px 11px;
  border-radius: 10px;
  background: rgba(30, 18, 8, 0.92);
  color: #fff;
  font-family: inherit;
  font-size: 12px;
  font-weight: 550;
  line-height: 1.3;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform: translateY(2px);
  transition: opacity 120ms ease, transform 120ms ease;
  box-shadow: 0 6px 16px rgba(40, 20, 5, 0.28);
}

.plaino-hint.is-visible {
  opacity: 1;
  transform: none;
}

/* ===== Ajustes só para desktop com mouse =======================
   Gated por (hover:hover) and (pointer:fine): o iPad (toque, pointer
   grosso) e celulares não entram aqui, então o app nativo fica igual. */
@media (hover: hover) and (pointer: fine) {
  /* 1) Biblioteca: conteúdo centralizado e com largura máxima em telas
     largas, pra não esticar a busca e os cartões de ponta a ponta.
     Só atinge a home (.ipad-project-home), nunca o editor 3D. */
  .ipad-project-home {
    max-width: 1200px;
    margin-inline: auto;
  }
  /* Busca não precisa ocupar a linha toda num monitor largo. */
  .ipad-project-home__tools {
    grid-template-columns: minmax(0, 640px) 1fr auto;
  }

  /* 3) Controles um pouco mais compactos com mouse (menos "tamanho de
     dedo"), mantendo boa área de clique. */
  .ipad-studio .ipad-context-buttons .ipad-chrome-button {
    min-height: 46px;
  }
  .ipad-studio .beginner-action-grid button {
    min-height: 40px;
  }
  .ipad-studio .ipad-wood-editor .touch-interaction-measure {
    min-height: 38px;
  }
  .plaino-support-button,
  .plaino-cut-shortcut {
    height: 46px;
  }

  /* 4) Cursor de clique e estados de hover para o mouse. */
  .ipad-studio button,
  .ipad-studio a,
  .ipad-project-home button,
  .ipad-project-home a,
  .plaino-support-button,
  .plaino-cut-shortcut {
    cursor: pointer;
  }
  .ipad-project-home__projects button:hover {
    filter: brightness(0.98);
  }
  .ipad-studio .ipad-context-buttons .ipad-chrome-button:hover {
    background: rgba(216, 119, 69, 0.08);
  }
  .plaino-support-button:hover {
    background: #a2572f;
  }

  /* 5) Dinâmica de redimensionar/mover com mouse e teclado.
     As caixas − / + ficam clicáveis e com retorno ao passar o mouse; o campo
     focado ganha um anel, sinalizando que ↑/↓ e a roda do mouse ajustam o
     valor ali. Os empurrões de "Mover com precisão" também ganham hover. */
  .number-box button,
  .ipad-nudge-grid button,
  .ipad-panel button,
  .ipad-panel .ipad-menu-row {
    cursor: pointer;
  }
  .number-box button:hover:not(:disabled),
  .ipad-nudge-grid button:hover:not(:disabled) {
    background: rgba(216, 119, 69, 0.12);
  }
  .ipad-panel .ipad-menu-row:hover {
    background: rgba(216, 119, 69, 0.08);
  }
  .number-box input:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(216, 119, 69, 0.55);
    border-radius: 8px;
  }

  /* A leitura de medidas (Comprimento/Largura/Espessura) é, na verdade, um
     botão que abre a entrada numérica exata — deixa claro que é clicável. */
  .ipad-studio .touch-interaction-measures {
    cursor: pointer;
  }
  .ipad-studio .touch-interaction-measures:hover {
    background: rgba(216, 119, 69, 0.08);
  }
}

/* ===========================================================================
   Gizmo de transformação (somente WEB + desktop com mouse). Barra flutuante com
   eixos coloridos — X vermelho, Y verde, Z azul — para mover, girar e
   redimensionar a peça por clique (e segurar para repetir), já que no desktop o
   arraste no 3D cai na órbita da câmera. Aciona os campos numéricos do próprio
   app (painel "Edit part", mantido invisível fora da tela). Criado só na
   web+desktop pelo plaino-ajustes.js; no app nativo (iPad, toque) não existe.
   =========================================================================== */
.plaino-giz {
  position: fixed;
  z-index: 44;
  left: 50%;
  bottom: max(16px, env(safe-area-inset-bottom));
  transform: translate(-50%, 8px);
  display: none;
  flex-direction: column;
  gap: 8px;
  width: 320px;
  max-width: calc(100vw - 24px);
  padding: 10px;
  border-radius: 20px;
  border: 1px solid rgba(180, 100, 58, 0.14);
  background: rgba(255, 252, 250, 0.96);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 12px 32px rgba(60, 30, 10, 0.18);
  font-family: inherit;
  opacity: 0;
  transition: opacity 140ms ease, transform 140ms ease;
}
.plaino-giz.is-visible {
  display: flex;
  opacity: 1;
  transform: translate(-50%, 0);
}

.plaino-giz__modes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
  padding: 3px;
  border-radius: 13px;
  background: rgba(120, 70, 40, 0.08);
}
.plaino-giz__mode {
  appearance: none;
  border: 0;
  border-radius: 10px;
  padding: 7px 4px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: #7a5540;
  background: transparent;
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease, box-shadow 120ms ease;
}
.plaino-giz__mode:hover {
  color: #5a3a28;
}
.plaino-giz__mode.is-active {
  background: #fff;
  color: #b4643a;
  box-shadow: 0 1px 4px rgba(60, 30, 10, 0.12);
}

.plaino-giz__rows {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.plaino-giz__row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.plaino-giz__row--x {
  --giz-c: #e0564c;
  --giz-bg: rgba(224, 86, 76, 0.12);
}
.plaino-giz__row--y {
  --giz-c: #3d9a63;
  --giz-bg: rgba(61, 154, 99, 0.12);
}
.plaino-giz__row--z {
  --giz-c: #3b82c4;
  --giz-bg: rgba(59, 130, 196, 0.12);
}
.plaino-giz__axis {
  flex: 0 0 auto;
  min-width: 66px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--giz-c, #7a5540);
}
.plaino-giz__axis b {
  font-weight: 800;
}
.plaino-giz__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--giz-c, #999);
  box-shadow: 0 0 0 3px var(--giz-bg, rgba(0, 0, 0, 0.06));
}
.plaino-giz__sub {
  font-size: 11px;
  font-weight: 600;
  color: #9a8373;
}
.plaino-giz__val {
  flex: 1 1 auto;
  min-width: 52px;
  text-align: center;
  font-size: 13px;
  font-weight: 650;
  color: #4a3326;
  font-variant-numeric: tabular-nums;
  cursor: text;
  border-radius: 7px;
  padding: 2px 4px;
  transition: background 100ms ease;
}
.plaino-giz__val:hover {
  background: rgba(120, 70, 40, 0.09);
}
.plaino-giz__input {
  flex: 1 1 auto;
  min-width: 52px;
  width: 100%;
  text-align: center;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  color: #4a3326;
  font-variant-numeric: tabular-nums;
  background: #fff;
  border: 1.5px solid var(--giz-c, #d8b9a5);
  border-radius: 7px;
  padding: 1px 4px;
  outline: none;
}
.plaino-giz__btn {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(120, 70, 40, 0.16);
  border-radius: 9px;
  background: #fff;
  color: var(--giz-c, #7a5540);
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: background 100ms ease, transform 60ms ease, border-color 100ms ease;
}
.plaino-giz__btn:hover {
  background: var(--giz-bg, #f6efe9);
  border-color: var(--giz-c, #d8b9a5);
}
.plaino-giz__btn:active {
  transform: scale(0.9);
}

/* Enquanto o gizmo usa o painel "Edit part" como backing, ele fica fora da tela
   (mas montado e clicável por código). Só vale quando foi o gizmo que o abriu. */
body.plaino-giz-managed .ipad-panel:has(.beginner-inspector) {
  position: fixed !important;
  left: -99999px !important;
  top: 0 !important;
  width: 460px !important;
  max-width: none !important;
  pointer-events: none !important;
}

/* Accessible unit choices without widening the toolbar on iPad. */
.plaino-unit-picker,.unit-select select{font:inherit;color:inherit;background:var(--panel,#fff);border:1px solid #d8d6d1;border-radius:9px;min-height:44px;max-width:180px;padding:6px 8px;}
.plaino-unit-picker:focus-visible{outline:3px solid var(--brand,#d87745);outline-offset:2px;}
.unit-options{display:block!important}.unit-options .plaino-unit-picker{width:100%;max-width:none;}
@media(max-width:699px){.unit-pill .plaino-unit-picker{max-width:115px;}}

.plaino-floor-control{margin:0 0 22px;padding-bottom:20px;border-bottom:1px solid #dedbd5}.plaino-floor-toggle{display:flex;align-items:center;gap:12px;min-height:48px;font:inherit;cursor:pointer}.plaino-floor-toggle input{width:24px;height:24px;accent-color:var(--brand,#d87745);flex-shrink:0}.plaino-floor-control p{line-height:1.5;color:#626268;margin:8px 0 0}

/* Direct desktop controls: precise editing stays at the bottom right. */
.plaino-mouse-precision{position:absolute;right:20px;bottom:20px;width:290px;z-index:44;padding:16px;border-radius:18px;background:rgba(255,253,249,.97);border:1px solid #dfd8cf;box-shadow:0 8px 28px #30251b12;pointer-events:auto;}
.plaino-mouse-precision h3{margin:0 0 10px;font-size:13px;color:#72665b;font-weight:600;}
.plaino-mouse-precision .numeric-field{margin:10px 0 0;}
.plaino-mouse-precision .field-label{font-size:13px;}
.plaino-mouse-precision .number-box{min-height:40px;}
.plaino-mouse-modes{display:flex;gap:4px;background:#f1ece5;border-radius:12px;padding:4px;}
.plaino-mouse-modes button{flex:1;border:0;background:transparent;border-radius:9px;min-height:40px;padding:8px 10px;font:600 13px system-ui;color:#716356;cursor:pointer;}
.plaino-mouse-modes button[aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #30251b12;color:#995b35;}
.plaino-mouse-modes button:focus-visible{outline:3px solid #ba805b;outline-offset:2px;}
.plaino-mouse-navigation{position:absolute;bottom:20px;left:20px;max-width:330px;z-index:42;padding:12px;background:rgba(255,253,249,.95);border:1px solid #dfd8cf;border-radius:16px;pointer-events:auto;}
.plaino-mouse-navigation p{font:12px/1.5 system-ui;color:#72665b;margin:8px 3px 0;}
.plaino-mouse-navigation .plaino-mouse-tool-hint{font-weight:600;color:#4d584a;}
@media(hover:hover) and (pointer:fine){.ipad-selection-tools{bottom:auto!important;top:88px!important;} .ipad-bottom-area{pointer-events:none;} .ipad-selection-tools{pointer-events:auto;}}
@media(max-width:800px){.plaino-mouse-precision{right:12px;bottom:12px;width:240px;padding:12px;}.plaino-mouse-navigation{left:12px;bottom:12px;max-width:230px;}}

.plaino-mouse-precision{box-sizing:border-box;width:320px;}
.plaino-mouse-precision .numeric-field{display:grid;grid-template-columns:94px minmax(0,1fr);align-items:center;gap:8px;}
.plaino-mouse-precision .number-box{width:100%;min-width:0;display:flex;box-sizing:border-box;}
.plaino-mouse-precision .number-box input{width:100%;min-width:0;flex:1 1 0;font-size:15px;text-align:center;}
.plaino-mouse-precision .number-box button{min-width:28px;flex:0 0 28px;}
.plaino-mouse-precision .field-unit{flex:0 0 auto;font-size:12px;}

@media(hover:hover) and (pointer:fine){
 .ipad-context-buttons>.ipad-chrome-button:nth-child(-n+3){display:none;}
 .ipad-context-buttons{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:800px){.plaino-mouse-navigation{max-width:calc(100vw - 380px);}.plaino-mouse-navigation p{display:none;}.plaino-mouse-modes button{padding:8px 6px;}}

.plaino-resize-axis{display:flex;gap:4px;margin:10px 0 4px;}
.plaino-resize-axis button{flex:1;min-height:36px;padding:5px 3px;border:1px solid #dfd8cf;border-radius:8px;background:#fffdf9;font:500 11px system-ui;color:#72665b;cursor:pointer;}
.plaino-resize-axis button[aria-pressed=true]{background:#f0e3d5;color:#805033;border-color:#c8a78d;}
.plaino-resize-axis button:focus-visible{outline:3px solid #ba805b;outline-offset:2px;}

.plaino-magnetic-toggle{width:100%;padding:9px 12px;min-height:40px;margin:0 0 10px;border:1px solid #d9d3c9;border-radius:10px;background:#f5f2ed;color:#72665b;font:600 12px system-ui;text-align:left;cursor:pointer;}
.plaino-magnetic-toggle[aria-checked=true]{background:#e9f2e9;border-color:#acc7af;color:#355b47;}
.plaino-magnetic-toggle:focus-visible{outline:3px solid #ba805b;outline-offset:2px;}

.linear-global-settings,.linear-stock{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:end;margin:18px 0;}
.linear-summary{display:flex;gap:18px;flex-wrap:wrap;padding:18px;border-radius:14px;background:#edf2e8;color:#39523a;align-items:center;}.linear-summary>strong{font-size:22px;}
.linear-profile{margin:24px 0;padding:20px;border:1px solid #dfd9ce;border-radius:16px;background:#fffdf8;}.linear-profile>header{display:flex;justify-content:space-between;gap:16px;align-items:center;}.linear-profile h3{font-size:17px;margin:0 0 5px;}.linear-profile p{margin:0;color:#7b7366;font-size:12px;}
.linear-presets{display:flex;flex-wrap:wrap;gap:6px;}.linear-presets button{padding:8px 10px;border:1px solid #ddd4c5;border-radius:8px;background:#fff;font:12px system-ui;color:#665a4b;cursor:pointer;min-height:36px;}.linear-presets button[aria-pressed=true]{background:#eee1ce;border-color:#bb946c;}
.linear-board{padding:14px 0;border-top:1px solid #e4dfd4;}.linear-board-title{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:10px;}.linear-board-title>span{color:#7b7366;}
.linear-strip{display:flex;width:100%;height:40px;overflow:hidden;border:1px solid #d3c6af;border-radius:8px;background:#f4f0e6;}.linear-segment{display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;font:600 12px system-ui;color:#493f31;flex-shrink:0;}.linear-color-0{background:#d8bb87;}.linear-color-1{background:#bed0af;}.linear-color-2{background:#abc6cf;}.linear-kerf{background:#fffdf8;min-width:1px;flex-shrink:0;}.linear-trim{background:#b5a895;}.linear-offcut{background:repeating-linear-gradient(135deg,#f3efe5,#f3efe5 5px,#e8e0d0 5px,#e8e0d0 6px);}
.linear-cut-sequence{margin:10px 0 0;padding-left:24px;}.linear-cut-sequence li{padding:5px 0;font-size:13px;}.linear-cut-sequence li>strong{margin-left:16px;}.linear-warning{color:#963f27;background:#fff0e7;padding:12px;border-radius:10px;margin:12px 0;}.linear-planner .primary-button{margin-bottom:18px;}
@media(max-width:700px){.linear-global-settings,.linear-stock{grid-template-columns:1fr;}.linear-profile{padding:14px;}.linear-profile>header{align-items:flex-start;flex-direction:column;}.linear-board-title{flex-wrap:wrap;}}
.linear-planner .numeric-field{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:0;}
.linear-planner .field-label{width:auto;font-size:13px;}
.linear-planner .number-box{display:flex;width:100%;min-width:0;min-height:44px;box-sizing:border-box;}
.linear-planner .number-box input{flex:1 1 0;width:100%;min-width:0;text-align:center;font-size:16px;}
.linear-planner .number-box button{flex:0 0 36px;min-width:36px;}
.linear-planner .field-unit{flex:0 0 auto;}

/* A single quiet inspector and one contextual measurement in the scene. */
.plaino-inspect-card{padding:16px;width:326px;border-color:#e4dfd6;box-shadow:0 5px 22px #30251b0d;border-radius:16px;max-height:calc(100vh - 110px);overflow:auto;}
.plaino-inspect-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px;}.plaino-inspect-heading>div{min-width:0;}.plaino-inspect-eyebrow{font:11px system-ui;color:#8a8074;}.plaino-inspect-heading h3{font:600 15px system-ui;color:#473e33;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;}
.plaino-snap-chip{flex:0 0 auto;border:1px solid #ded9ce;border-radius:20px;min-height:32px;padding:6px 10px;background:#f5f2eb;font:500 11px system-ui;color:#82786a;cursor:pointer;}.plaino-snap-chip:before{content:' ';display:inline-block;width:6px;height:6px;background:#b8b0a4;border-radius:50%;margin-right:5px;}.plaino-snap-chip[aria-checked=true]{color:#42624c;border-color:#bfd0bf;background:#eff4ec;}.plaino-snap-chip[aria-checked=true]:before{background:#63886c;}
.plaino-reference-section{margin:16px 0;border-top:1px solid #e8e2d8;padding-top:12px;}.plaino-reference-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:12px;color:#776d60;}.plaino-reference-heading>strong{font-weight:500;}.plaino-reference-heading>button{border:0;background:none;color:#8b6847;font-size:11px;padding:6px;cursor:pointer;}
.plaino-measure-modes{display:flex;gap:4px;margin-bottom:12px;}.plaino-measure-modes>button{flex:1;min-height:34px;border:0;border-radius:8px;background:transparent;color:#827768;font:500 12px system-ui;cursor:pointer;}.plaino-measure-modes>button[aria-pressed=true]{background:#ece7de;color:#55483b;}
.plaino-reference-picker{display:block;font:11px system-ui;color:#8a8074;}.plaino-reference-picker select{display:block;margin-top:6px;width:100%;padding:9px 8px;border:1px solid #e0d9cf;border-radius:8px;background:#fffdf8;color:#625648;font:12px system-ui;}
.plaino-gap-reading{margin-top:14px;}.plaino-gap-reading .numeric-field{display:flex;flex-direction:column;align-items:stretch;gap:6px;}.plaino-gap-reading .field-label{font-size:12px;}.plaino-gap-reading .number-box{min-height:48px;border-color:#cbd7db;background:#f1f5f5;}.plaino-gap-reading .number-box input{font-size:21px;color:#466575;}.plaino-gap-reading p{margin:8px 0 4px;font:12px system-ui;color:#5b7380;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.plaino-gap-reading small,.plaino-reference-empty,.plaino-reference-note{font:11px/1.5 system-ui;color:#928779;}
.plaino-precision-details{border-top:1px solid #e8e2d8;padding-top:12px;}.plaino-precision-details summary{cursor:pointer;font:12px system-ui;color:#7c7061;padding:4px 0;}.plaino-inspect-footer{display:flex;justify-content:space-between;margin-top:14px;}.plaino-inspect-footer button{border:0;background:none;padding:6px 0;font:12px system-ui;color:#9a7653;cursor:pointer;}
.plaino-inspect-card button:focus-visible,.plaino-inspect-card select:focus-visible,.plaino-precision-details summary:focus-visible{outline:2px solid #b48a61;outline-offset:3px;}
@media(hover:hover) and (pointer:fine){.ipad-selection-tools{display:none!important;}.plaino-mouse-navigation{padding:6px;max-width:280px;border-color:#e4dfd6;border-radius:14px;box-shadow:none;}.plaino-mouse-navigation p{display:none;}.plaino-mouse-navigation:hover p,.plaino-mouse-navigation:focus-within p{display:block;margin:8px 8px 4px;font-size:11px;}.plaino-mouse-navigation .plaino-mouse-modes{background:transparent;}.plaino-mouse-modes button{font-weight:500;}}
.plaino-ruler-panel p,.plaino-selection-summary p{font-size:13px;line-height:1.5;color:#746c63}.plaino-ruler-panel output{display:block;font-size:32px;font-weight:650;margin:22px 0;color:#356554;font-variant-numeric:tabular-nums}.plaino-ruler-point{display:grid;place-items:center;width:24px;height:24px;background:#fff;color:#356554;border:2px solid #467968;border-radius:50%;font:700 12px system-ui;box-shadow:0 1px 5px #0002}.plaino-selection-summary{position:absolute;right:22px;bottom:24px;width:318px;padding:18px;background:#fffdf9;border:1px solid #e8e2d8;border-radius:20px;box-shadow:0 8px 32px #33281914;z-index:25}.plaino-selection-summary .plaino-mouse-modes{flex-wrap:wrap}.plaino-ruler-panel h3{font-size:20px;margin:8px 0}@media(pointer:coarse){.plaino-ruler-panel{position:absolute;bottom:100px;right:18px;max-width:300px;padding:18px;background:#fffdf9;border-radius:20px;z-index:25}}
.plaino-mouse-navigation p.plaino-navigation-keys{display:block!important;max-width:245px;font-size:10px;line-height:1.5;margin:7px 2px 0;color:#7c746c}.plaino-selection-summary small{display:block;color:#8a8177;font-size:11px;margin:0 0 12px}.ipad-main-dock .ipad-tool-label{white-space:normal}
.ipad-main-dock .ipad-chrome-button>span{max-width:74px;white-space:normal;text-align:center;line-height:1.2}
/* Purchase first, cutting instructions on demand. */
.linear-simple{color:#403a32}.linear-purchase-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0 18px}.linear-step{font-size:12px;font-weight:650;color:#796e61}.linear-purchase-heading h3{font-size:28px;letter-spacing:-.6px;margin:5px 0}.linear-purchase-heading p,.linear-plan-heading p{font-size:13px;color:#7b7368;margin:4px 0}.linear-purchase-heading button{font-size:13px;min-height:44px}.linear-shopping{border:1px solid #e3ded6;border-radius:14px;overflow:hidden;background:#fffdf9}.linear-simple table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}.linear-simple th{font-size:11px;font-weight:550;color:#7c746a;background:#f5f2ec;padding:12px 16px}.linear-simple td{padding:16px;border-top:1px solid #eae5dc;font-variant-numeric:tabular-nums}.linear-shopping td:first-child{width:105px}.linear-shopping td:first-child strong{font-size:24px;margin-right:7px}.linear-shopping td:first-child span{font-size:12px;color:#7c746a}.linear-simple small{display:block;font-size:11px;font-weight:400;color:#82786b;margin-top:5px}.linear-options{margin:14px 0 28px;border-bottom:1px solid #e5dfd5;padding-bottom:14px}.linear-simple summary{cursor:pointer;min-height:44px;align-content:center}.linear-options>summary,.linear-piece-detail>summary{font-size:13px;color:#776b5d}.linear-options>p,.linear-piece-detail>p{font-size:12px;color:#82786b;line-height:1.5}.linear-stock-option{padding:16px 0;border-top:1px solid #e8e1d6}.linear-stock-option>.linear-stock{margin-bottom:0}.linear-stock-option>strong{font-size:14px}.linear-plan-heading{margin:10px 0 14px}.linear-profile-fold{padding:0;margin:10px 0;background:#fffdf9;border-color:#e3ded6}.linear-profile-fold>summary{display:flex;justify-content:space-between;gap:12px;padding:16px 18px;list-style:none}.linear-profile-fold>summary::-webkit-details-marker{display:none}.linear-profile-fold>summary>span:first-child{flex:1}.linear-profile-fold>summary:after{content:'+';font-size:20px;font-weight:400;color:#8a7e6d}.linear-profile-fold[open]>summary:after{content:'\2212'}.linear-profile-fold>summary strong{font-size:15px}.linear-profile-fold>summary>span:nth-child(2){font-size:13px;color:#7a6d5b;align-self:center}.linear-profile-fold .linear-board{margin:0 18px;padding:18px 0}.linear-profile-fold .linear-board-title{font-size:12px;align-items:center}.linear-cut-recipe{padding:0;list-style:none;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:10px}.linear-cut-recipe li{display:flex;align-items:center;gap:12px;border:1px solid #e2dacc;border-radius:9px;padding:10px 14px;background:#fff}.linear-cut-recipe li>span{font-size:13px;color:#8b7d68}.linear-cut-recipe strong{font-size:18px;font-weight:600;letter-spacing:-.2px}.linear-profile-fold .linear-strip{height:14px;border-radius:5px;opacity:.8}.linear-piece-detail{margin:0 18px;padding:10px 0;border-top:1px solid #e5dfd5}.linear-piece-detail table{font-size:12px}.linear-piece-detail td{padding:10px 12px}.linear-footnote{font-size:11px;color:#8a8177;line-height:1.6;margin-top:20px}.linear-simple summary:focus-visible{outline:3px solid #bf8759;outline-offset:3px;border-radius:10px}@media(max-width:600px){.linear-purchase-heading{align-items:flex-start;flex-direction:column;gap:12px}.linear-shopping th,.linear-shopping td{padding:12px 9px;font-size:12px}.linear-shopping td:first-child{width:70px}.linear-shopping td:first-child span{display:block}.linear-shopping td:first-child strong{font-size:22px}.linear-profile-fold>summary{padding:14px 12px}.linear-profile-fold .linear-board{margin:0 12px}.linear-board-title>span{font-size:11px}.linear-cut-recipe strong{font-size:17px}}
.plaino-drag-instruction{font-size:13px;line-height:1.5;color:#786d60;margin:12px 0 16px}

/* Plaino: quiet materials, clear hierarchy and native-size controls. */
.ipad-project-home{--px-ink:#272b28;--px-muted:#646c66;--px-paper:#fbfaf7;--px-line:#e4e4dc;--px-brand:#885032;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;color:var(--px-ink);background:var(--px-paper)!important}
.ipad-project-home .ipad-project-home__header{min-height:80px;padding-inline:clamp(20px,4.8vw,72px)!important;background:#fffefb!important;border-color:var(--px-line)!important}
.ipad-project-home .ipad-project-home__brand{gap:13px}.ipad-project-home .ipad-project-home__brand>span{display:none}.ipad-project-home .ipad-project-home__brand img{width:35px;height:35px}.ipad-project-home .ipad-project-home__brand h1{font-size:23px!important;font-weight:650;letter-spacing:-.9px}
.ipad-project-home .ipad-project-home__main{display:block!important;padding:32px clamp(20px,4.8vw,72px) 24px!important;overflow-y:auto!important;overscroll-behavior-y:contain;background:var(--px-paper)!important;scrollbar-gutter:stable;scroll-padding-top:24px}
.ipad-project-home .ipad-project-home__scroll{overflow:visible!important;min-height:0!important;flex:none!important;margin-top:18px}
.ipad-project-home .ipad-project-home__heading{margin:26px 0 18px;align-items:center!important}.ipad-project-home .ipad-project-home__heading h2{font-size:25px!important;letter-spacing:-.7px;font-weight:650}.ipad-project-home .ipad-project-home__heading p{color:var(--px-muted);font-size:14px}.ipad-project-home .ipad-project-home__eyebrow{font-size:10px!important;letter-spacing:1.7px!important;font-weight:650;color:#7d6553!important;margin-bottom:8px!important}
.ipad-project-home__header-actions>button,.ipad-project-home__header-actions select{min-height:44px!important;border-radius:12px!important;font-size:14px!important}
.ipad-project-home .ipad-project-home__learn{background:transparent!important;color:#555d56}.ipad-project-home .ipad-project-home__import{background:#f0f0e9!important;color:#535b54!important}.ipad-project-home .ipad-project-home__new{background:var(--px-brand)!important;color:white}
.px-intro{position:relative;display:grid;grid-template-columns:1.05fr 1fr;column-gap:clamp(24px,5vw,74px);border:1px solid #e6e3d8;border-radius:26px;background:#f2f1e9;padding:38px 42px 0;isolation:isolate;overflow:hidden}
.px-eyebrow{font-size:10px!important;letter-spacing:1.9px;line-height:1.5;font-weight:650;color:#76624f;margin:0 0 15px}
.px-intro h2{font-family:inherit;font-size:clamp(34px,4.1vw,54px);line-height:1.04;letter-spacing:-2.1px;font-weight:650;margin:0;color:#272b28}.px-intro h2 span{color:#865436}
.px-intro__description{color:#565f57;font-size:15px;line-height:1.65;max-width:390px;margin:18px 0 24px;text-wrap:pretty}
.px-intro__actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.px-primary,.px-secondary{font:inherit;font-size:14px!important;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px!important;padding:11px 18px!important;border-radius:12px!important;text-decoration:none;line-height:1.4;cursor:pointer;border:1px solid transparent;transition:background .16s,box-shadow .16s,transform .16s}
.px-primary,.ipad-project-home .px-primary{background:#885032!important;color:#fff!important;border-color:#885032!important;box-shadow:0 3px 5px #62341a0b}.px-primary:hover,.ipad-project-home .px-primary:hover{background:#723f26!important;box-shadow:0 4px 12px #62341a20;transform:translateY(-1px)}
.px-secondary,.ipad-project-home .px-secondary{background:#ffffffa6!important;color:#343c35!important;border-color:#d9dcd2!important}.px-secondary:hover{background:#fff!important;border-color:#aeb8a9!important}
.px-intro__trust{display:flex;align-items:center;gap:7px;font-size:11px;color:#626d61;line-height:1.6;margin:14px 0 0;max-width:400px}.px-intro__trust svg{flex-shrink:0;color:#61785f}
.px-intro__dismiss{display:inline-flex;align-items:center;gap:8px;min-height:36px;margin:12px 0 8px;padding:0 2px;background:transparent;color:#5c665e;border:0;font-size:11px;cursor:pointer}.px-intro__dismiss:hover{text-decoration:underline}
.px-showcase{align-self:center;position:relative;border:1px solid #deded3;border-radius:18px;background:#fcfbf6;box-shadow:0 20px 40px -20px #404a3128;margin:0;overflow:hidden;transform:rotate(-2deg)}
.px-showcase__top{display:flex;align-items:center;gap:7px;min-height:43px;padding:0 16px;border-bottom:1px solid #e9e8de;color:#6c7567;font-size:9px;font-weight:600;letter-spacing:1.3px}.px-showcase__unit{margin-left:auto;color:#7c8477;font-size:9px;letter-spacing:.4px;white-space:nowrap}.px-live-dot{width:5px;height:5px;background:#81956c;border-radius:50%}
.px-showcase__drawing{position:relative;height:220px;display:flex;align-items:center;justify-content:center;background-color:#f9f9f2;background-image:linear-gradient(#626e4010 1px,transparent 1px),linear-gradient(90deg,#626e4010 1px,transparent 1px);background-size:22px 22px;overflow:hidden}
.px-showcase__model{width:88%;height:240px;overflow:visible;filter:drop-shadow(12px 12px 6px #54663312)}.px-showcase__model>rect{fill:transparent}.px-showcase__model text{display:none}.px-showcase__model polygon{stroke-width:.7px;stroke:#776e57}
.px-dimension{position:absolute;color:#7d856c;font-size:8px;font-weight:600;letter-spacing:1.5px}.px-dimension--vertical{left:12px;top:105px;writing-mode:vertical-rl;transform:rotate(180deg)}.px-dimension--bottom{bottom:10px;right:16px;letter-spacing:1px}
.px-showcase figcaption{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-top:1px solid #e9e8de;background:#fffefb}.px-showcase figcaption strong{display:block;font-size:12px;font-weight:600;color:#454e42}.px-showcase figcaption small{display:block;font-size:9px;line-height:1.5;color:#737b6e;margin-top:3px}.px-showcase__badge{font-size:11px;padding:7px 8px;color:#727f65;border:1px solid #e1e5d7;border-radius:8px;background:#f4f7ee}
.px-proof-strip{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ddded1;margin-top:22px;padding:17px 0;gap:16px;color:#515c50;font-size:11px}.px-proof-strip>span{display:flex;align-items:center;gap:11px}.px-proof-strip>span+span{border-left:1px solid #daddcf;padding-left:20px}.px-proof-strip b{font-family:ui-monospace,monospace;font-size:9px;font-weight:400;color:#8b907e}
.px-intro-compact{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 16px;border-bottom:1px solid var(--px-line);color:#697265;font-size:12px}.px-intro-compact button{background:transparent;border:0;padding:6px 0;min-height:36px;font:inherit;color:#6e4c32;cursor:pointer}.px-intro-compact button:hover{text-decoration:underline}
.ipad-project-home .ipad-project-home__search{background:#f0f1eb!important;border:1px solid #e6e8e0!important;border-radius:12px!important;min-height:44px!important}.ipad-project-home .ipad-project-home__sort{border:1px solid #e1e5da!important;border-radius:12px!important;background:#fffefb}.ipad-project-home .ipad-project-home__view{border:1px solid #e1e5da!important;border-radius:12px!important;background:#eff0e8}.ipad-project-home .ipad-project-home__view button{border-radius:9px!important;min-height:40px!important}
.ipad-project-home .ipad-project-home__project{border-radius:18px!important;border:1px solid #e0e4d9!important;box-shadow:0 3px 8px #343f2704;transition:transform .18s,border-color .18s,box-shadow .18s;background:#fffefb!important;overflow:hidden}.ipad-project-home .ipad-project-home__project:hover{transform:translateY(-3px);box-shadow:0 9px 24px #343f2710;border-color:#a4b599!important}.ipad-project-home .ipad-project-home__project.is-active{border-color:#c8cebc!important;box-shadow:none!important}.ipad-project-home .ipad-project-home__active-mark{background:#fffefbe8!important;color:#5f7257!important;font-size:10px!important;border:1px solid #d4dccb;backdrop-filter:blur(10px);border-radius:7px!important}
.ipad-project-home .ipad-project-home__project-copy{padding:16px!important}.ipad-project-home .ipad-project-home__project-copy strong{font-size:16px!important;letter-spacing:-.25px;font-weight:600}.ipad-project-home .ipad-project-home__project-copy>span:not(.px-project-open){font-size:12px!important;color:#6d766a}.ipad-project-home .ipad-project-home__project-copy small{font-size:11px!important;color:#747e71}.px-project-open{display:block!important;color:#865436!important;font-size:11px!important;font-weight:600;margin-top:11px!important;padding-right:30px}
.ipad-project-home .ipad-project-home__continue{border-radius:12px!important;border:1px solid #d8dece!important;background:#f3f5ed!important;min-height:46px}.ipad-project-home .ipad-project-home__continue>span{color:#5f7257;font-size:10px}.ipad-project-home .ipad-project-home__continue>strong{font-size:12px}
.px-home-bottom{padding-top:28px}.px-backup{display:flex;align-items:center;gap:15px;border:1px solid #e2e5da;border-radius:17px;padding:20px 22px;background:#f4f5ee}.px-backup__icon{color:#718268;flex:0 0 auto;display:flex}.px-backup h3,.px-pro h3{font-size:14px;letter-spacing:-.2px;font-weight:600;line-height:1.5;margin:0 0 3px;color:#414c3d}.px-backup p,.px-pro p{font-size:12px;line-height:1.6;color:#697562;max-width:540px;margin:0}.px-backup>.px-secondary{margin-left:auto;white-space:nowrap;min-height:42px!important;font-size:12px!important}.px-backup button:disabled{opacity:.5;cursor:default}.px-home-bottom__meta{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;color:#747d6e;font-size:10px;letter-spacing:.4px}.px-home-bottom__meta>span>span{margin-inline:6px;color:#a4ad9a}
.px-pro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid #e1e5d7}.px-pro .px-eyebrow{margin-bottom:6px;font-size:9px!important}.px-pro [data-plaino-pro-anchor]{flex-shrink:0}
[data-plaino-support-anchor] .plaino-support-button{position:static!important;transform:none!important;opacity:1!important;box-shadow:none!important;background:transparent!important;color:#75573e!important;border:0!important;min-height:40px!important;padding:7px 0!important;font-size:11px!important;gap:6px!important;border-radius:0!important;display:inline-flex!important}[data-plaino-support-anchor] .plaino-support-button svg{width:12px;height:12px}[data-plaino-pro-anchor] .plaino-pro-button{position:static!important;transform:none!important;box-shadow:none!important;opacity:1!important;min-height:44px!important}
.ipad-project-home .ipad-project-home__footer{font-size:10px!important;min-height:30px!important;padding:8px 20px!important;background:#fafbf6!important;border-top:1px solid #e6e9df;color:#7b8475!important}
.px-template-art{width:100%;height:66px;color:#8b785e;display:block;margin:3px 0 10px}.ipad-project-home__template-picker>div{gap:12px!important}.ipad-project-home__template-picker>div>button{display:flex!important;flex-direction:column!important;align-items:stretch!important;text-align:left!important;border-radius:14px!important;background:#fbfcf7!important;border:1px solid #dce2d2!important;padding:12px 14px!important;min-height:136px!important;color:#3e4939}.ipad-project-home__template-picker>div>button.is-selected{border-color:#966b49!important;background:#faf5ea!important;box-shadow:0 0 0 1px #966b49!important}.ipad-project-home__template-picker>div>button>span{display:flex;flex-direction:column;gap:4px}.ipad-project-home__template-picker strong{font-size:13px!important}.ipad-project-home__template-picker small{font-size:10px!important;color:#727e67!important}.px-template-hint{font-size:12px!important;line-height:1.6;color:#697561;margin:5px 0 14px}
.px-editor-empty{position:absolute;z-index:6;left:50%;top:49%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 48px));text-align:center;background:#fffefbed;backdrop-filter:blur(16px);padding:30px;border:1px solid #e0e5d3;border-radius:23px;box-shadow:0 18px 60px #3e4d2920}.px-editor-empty .px-eyebrow{font-size:9px!important;margin-bottom:12px}.px-editor-empty h1{font-size:30px;letter-spacing:-1.1px;line-height:1.15;font-weight:600;color:#394132;margin:0 0 12px}.px-editor-empty p{font-size:13px;line-height:1.7;color:#657159;margin:0 0 20px}.px-editor-empty__hint{display:block;font-size:10px;line-height:1.6;color:#7c866f;margin-top:15px}.px-save-label{font-size:10px;line-height:1;color:#6f7e63;font-weight:500;white-space:nowrap}.ipad-project-button .px-save-label{margin-left:-4px;margin-right:2px}
.px-field-error{display:block;font-size:11px;line-height:1.5;color:#a13123;margin:6px 0 2px}.px-field-invalid .number-box{border-color:#b75342!important;box-shadow:0 0 0 1px #b7534220}.numeric-field .number-box input[aria-invalid=true]{color:#942f22}.numeric-field .number-box button{font-size:16px;font-weight:500}
.px-intro button:focus-visible,.px-home-bottom button:focus-visible,.px-intro-compact button:focus-visible,.px-editor-empty button:focus-visible,.ipad-project-home button:focus-visible,.ipad-project-home select:focus-visible,.ipad-project-home input:focus-visible{outline:3px solid #805334!important;outline-offset:3px!important}
@media(min-width:900px){.ipad-project-home .ipad-project-home__projects{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important;gap:20px!important}.ipad-project-home__project .ipad-project-preview{height:178px!important}}
@media(max-width:900px){.px-intro{padding:28px 28px 0;column-gap:24px}.px-intro h2{font-size:39px;letter-spacing:-1.5px}.px-showcase__top{padding-inline:10px;font-size:8px;letter-spacing:.7px}.px-showcase__unit{font-size:8px}.px-intro__description{font-size:14px;margin:14px 0 18px}.px-intro__actions{align-items:stretch;gap:8px}.px-intro__actions .px-primary,.px-intro__actions .px-secondary{font-size:12px!important;padding:10px 13px!important}.px-intro__trust{font-size:10px}.px-proof-strip{font-size:10px}}
@media(max-width:650px){.ipad-project-home .ipad-project-home__header{min-height:72px;padding:12px 18px!important;gap:10px;flex-wrap:wrap}.ipad-project-home .ipad-project-home__brand h1{font-size:21px!important}.ipad-project-home .ipad-project-home__brand img{width:31px;height:31px}.ipad-project-home .ipad-project-home__header-actions{gap:7px!important}.ipad-project-home__header-actions .ipad-project-home__language{min-width:0}.ipad-project-home__header-actions select{max-width:145px!important;font-size:12px!important}.ipad-project-home .ipad-project-home__main{padding:20px 18px!important}.px-intro{grid-template-columns:1fr;gap:0;padding:25px 24px 0;border-radius:21px}.px-intro h2{font-size:44px;letter-spacing:-1.8px}.px-intro__description{font-size:14px;max-width:360px}.px-intro__actions .px-primary,.px-intro__actions .px-secondary{font-size:12px!important}.px-intro__trust{font-size:10px}.px-intro__dismiss{margin-bottom:18px}.px-showcase{width:100%;max-width:340px;justify-self:center;transform:rotate(-1.5deg);margin:0 0 4px}.px-showcase__drawing{height:175px}.px-showcase__model{height:190px}.px-showcase__top{min-height:35px}.px-showcase figcaption{padding:10px 13px}.px-showcase figcaption small{font-size:9px}.px-proof-strip{margin-top:23px;gap:9px;font-size:9px;padding:15px 0;line-height:1.45}.px-proof-strip>span{gap:6px}.px-proof-strip>span+span{padding-left:8px}.px-proof-strip b{font-size:8px}.px-backup{flex-wrap:wrap;align-items:flex-start;padding:18px;gap:12px}.px-backup>div:not(.px-backup__icon){flex:1;min-width:170px}.px-backup>.px-secondary{margin-left:34px!important;font-size:11px!important;min-height:40px!important}.px-backup p{font-size:11px}.px-backup h3{font-size:13px}.px-home-bottom__meta{font-size:9px;gap:8px;flex-wrap:wrap;justify-content:flex-start;padding-top:12px}.px-pro{flex-wrap:wrap}.px-save-label{position:absolute!important;width:1px;height:1px;padding:0;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}.px-template-art{height:52px}.ipad-project-home__template-picker>div>button{min-height:126px!important;padding:10px!important}.px-intro-compact{font-size:11px}.px-editor-empty{padding:24px}.px-editor-empty h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.px-primary,.px-secondary,.ipad-project-home .ipad-project-home__project{transition:none!important;transform:none!important}}

.px-footer-links{display:flex;align-items:center;gap:18px}.px-footer-links>button{border:0;background:transparent;font:inherit;font-size:11px;min-height:40px;padding:6px 0;color:#626e5b;cursor:pointer}.px-footer-links>button:hover{text-decoration:underline}
@media(max-width:650px){
.ipad-project-home .ipad-project-home__header{display:grid!important;grid-template-columns:minmax(55px,1fr) 106px 44px 70px;grid-template-rows:44px;gap:6px!important;align-items:center;min-height:70px!important;padding:12px 16px!important}
.ipad-project-home .ipad-project-home__header-actions{display:contents!important}
.ipad-project-home .ipad-project-home__brand{grid-column:1;grid-row:1;min-width:0}
.ipad-project-home .ipad-project-home__brand h1{font-size:20px!important}
.ipad-project-home .ipad-project-home__header-actions>.ipad-project-home__learn{display:none!important}
.ipad-project-home .ipad-project-home__header-actions>.ipad-project-home__language{grid-column:2;grid-row:1;order:0;display:block!important;min-width:0;max-width:106px}
.ipad-project-home .ipad-project-home__language .plaino-language-picker{min-height:38px!important;gap:4px!important;max-width:106px}
.ipad-project-home .ipad-project-home__language .plaino-language-picker svg{width:13px!important;height:13px!important;flex-shrink:0}
.ipad-project-home .ipad-project-home__language .plaino-language-picker select{min-height:38px!important;max-width:88px!important;min-width:0!important;border-radius:9px!important;padding:5px 16px 5px 6px!important;font-size:11px!important}
.ipad-project-home .ipad-project-home__header-actions>.ipad-project-home__import{grid-column:3;grid-row:1;min-width:0!important;min-height:44px!important;padding:10px!important}
.ipad-project-home .ipad-project-home__header-actions>.ipad-project-home__new{grid-column:4;grid-row:1;min-width:0!important;min-height:44px!important;padding:8px!important;gap:5px!important;font-size:11px!important}
.ipad-project-home .ipad-project-home__header-actions>.ipad-project-home__new svg{width:15px;height:15px}
.ipad-project-home .ipad-project-home__header-actions>.ipad-project-home__new>span{display:inline!important}
.px-home-bottom__meta{align-items:center}.px-footer-links{gap:16px}
}

[data-plaino-support-anchor] .plaino-support-button:not(.is-visible){display:none!important}
.ipad-project-home,.ipad-project-home__main{touch-action:pan-y pinch-zoom!important}

/* ===========================================================================
   Camada de medidas (HUD). Um botão-régua flutuante (fica abaixo da barra de
   topo, na borda direita do editor) liga/desliga um painel com os totais do
   projeto — peças, madeira, board-feet e envelope — mais um resumo por perfil e
   um esquema das peças que alterna entre montado e expandido. Tudo é lido do
   armazenamento (plaino-projects-v1), então aparece sem seleção e sem abrir aba.
   Criado pelo plaino-ajustes.js; some sozinho se o layout do editor mudar.
   =========================================================================== */
.plaino-hud-toggle {
  position: fixed;
  z-index: 34;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid rgba(180, 100, 58, 0.22);
  border-radius: 13px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: #8a5233;
  background: rgba(255, 253, 249, 0.96);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 6px 18px rgba(80, 40, 15, 0.14);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.plaino-hud-toggle.is-visible { display: inline-flex; }
.plaino-hud-toggle.is-on {
  color: #fff;
  border-color: #b4643a;
  background: #b4643a;
  box-shadow: 0 6px 18px rgba(80, 40, 15, 0.26);
}
.plaino-hud-toggle svg { flex: none; }
.plaino-hud-toggle:active { transform: scale(0.97); }

.plaino-hud {
  position: fixed;
  z-index: 33;
  display: none;
  box-sizing: border-box;
  width: 244px;
  max-width: calc(100vw - 24px);
  padding: 13px;
  border: 1px solid #e8e2d8;
  border-radius: 18px;
  background: rgba(255, 253, 249, 0.97);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 12px 34px rgba(60, 30, 10, 0.16);
  font-family: inherit;
  color: #4a3326;
}
.plaino-hud.is-visible { display: block; }

.plaino-hud__head { display: flex; align-items: center; gap: 8px; margin-bottom: 11px; }
.plaino-hud__head svg { flex: none; color: #8a7868; }
.plaino-hud__title { font-size: 13px; font-weight: 650; color: #4a3326; }
.plaino-hud__unit {
  font-size: 11px; font-weight: 600; color: #8a5233;
  padding: 1px 8px; border-radius: 20px; background: rgba(180, 100, 58, 0.12);
}
.plaino-hud__collapse {
  margin-left: auto; width: 24px; height: 24px; display: inline-flex;
  align-items: center; justify-content: center; border: 0; padding: 0;
  background: transparent; color: #9a8373; cursor: pointer;
}
.plaino-hud__collapse svg { width: 16px; height: 16px; }

.plaino-hud__seg {
  display: flex; gap: 3px; padding: 3px; margin-bottom: 11px;
  border-radius: 11px; background: rgba(120, 70, 40, 0.08);
}
.plaino-hud__seg button {
  flex: 1; min-height: 30px; border: 0; padding: 0 6px; border-radius: 8px;
  font: inherit; font-size: 12px; font-weight: 600; color: #7a5540;
  background: transparent; cursor: pointer; display: inline-flex;
  align-items: center; justify-content: center; gap: 5px;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.plaino-hud__seg button svg { width: 14px; height: 14px; flex: none; }
.plaino-hud__seg button[aria-pressed="true"] {
  background: #fff; color: #b4643a; box-shadow: 0 1px 4px rgba(60, 30, 10, 0.12);
}

.plaino-hud__diagram {
  display: block; width: 100%; height: 120px; margin-bottom: 11px;
  border-radius: 12px; background: #f7f4ee;
  background-image: linear-gradient(rgba(98, 110, 64, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(98, 110, 64, 0.08) 1px, transparent 1px);
  background-size: 16px 16px;
}
.plaino-hud__diagram .pc-rect { fill: #fff; stroke: #c3a98f; stroke-width: 1; transition: transform 0.42s cubic-bezier(0.2, 0.7, 0.2, 1); }
.plaino-hud__diagram .pc-rect.is-top { fill: #f0dcc4; stroke: #b4643a; }
.plaino-hud__diagram .pc-label { fill: #6a4a34; font: 600 10px system-ui; text-anchor: middle; opacity: 0; transition: opacity 0.25s ease; }
.plaino-hud__diagram.is-exp .pc-label { opacity: 1; }

.plaino-hud__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
.plaino-hud__tile { background: rgba(120, 70, 40, 0.06); border-radius: 9px; padding: 7px 8px; }
.plaino-hud__tile b { display: block; font-size: 10px; font-weight: 600; color: #9a8373; letter-spacing: 0.01em; }
.plaino-hud__tile span { display: block; margin-top: 2px; font-size: 16px; font-weight: 650; color: #4a3326; font-variant-numeric: tabular-nums; }
.plaino-hud__tile span small { font-size: 11px; font-weight: 600; color: #8a7868; }

.plaino-hud__env {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-top: 6px; padding: 7px 10px; border-radius: 9px; background: rgba(120, 70, 40, 0.06);
}
.plaino-hud__env b { font-size: 10px; font-weight: 600; color: #9a8373; }
.plaino-hud__env span { font-size: 13px; font-weight: 650; color: #4a3326; font-variant-numeric: tabular-nums; }

.plaino-hud__list { margin-top: 11px; border-top: 1px solid #eadfd3; padding-top: 9px; }
.plaino-hud__list > b { display: block; font-size: 10px; font-weight: 600; color: #9a8373; margin-bottom: 6px; }
.plaino-hud__row { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; padding: 2px 0; }
.plaino-hud__row em { color: #7a6c5e; font-style: normal; }
.plaino-hud__row span { font-variant-numeric: tabular-nums; color: #4a3326; }
.plaino-hud__more { margin-top: 4px; font-size: 11px; color: #9a8373; }

.plaino-hud__empty { padding: 6px 2px 2px; font-size: 13px; line-height: 1.5; color: #8a7868; }

.plaino-hud.is-collapsed .plaino-hud__seg,
.plaino-hud.is-collapsed .plaino-hud__diagram,
.plaino-hud.is-collapsed .plaino-hud__grid,
.plaino-hud.is-collapsed .plaino-hud__env,
.plaino-hud.is-collapsed .plaino-hud__list,
.plaino-hud.is-collapsed .plaino-hud__empty { display: none; }
.plaino-hud.is-collapsed .plaino-hud__head { margin-bottom: 0; }

@media (hover: hover) and (pointer: fine) {
  .plaino-hud-toggle, .plaino-hud__collapse, .plaino-hud__seg button { cursor: pointer; }
  .plaino-hud-toggle:hover:not(.is-on) { border-color: rgba(180, 100, 58, 0.4); }
  .plaino-hud__seg button:hover:not([aria-pressed="true"]) { color: #5a3a28; }
}

/* ===========================================================================
   Navegação por teclado (somente WEB + desktop com teclado). Painel de atalhos
   acessível (role=dialog, Esc, foco preso) aberto pela tecla "?" ou por um balão
   único de dica na primeira entrada no editor. Criado pelo plaino-ajustes.js; no
   app nativo (iPad, toque) nada disto é ativado.
   =========================================================================== */
@media (hover: hover) and (pointer: fine) {
  .plaino-kbd-overlay {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(30, 18, 8, 0.42);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
  }
  .plaino-kbd-overlay.is-open { display: flex; }

  .plaino-kbd-modal {
    position: relative;
    width: min(560px, 100%);
    box-sizing: border-box;
    padding: 26px 26px 20px;
    border-radius: 20px;
    background: #fffaf4;
    box-shadow: 0 24px 60px rgba(40, 20, 5, 0.34);
    font-family: inherit;
    color: #2a1d12;
  }
  .plaino-kbd-modal h2 { margin: 0 0 18px; font-size: 19px; font-weight: 750; }

  .plaino-kbd-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 28px; }
  .plaino-kbd-group h3 {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #9a7b5f;
  }
  .plaino-kbd-row { display: flex; align-items: center; gap: 10px; padding: 4px 0; }
  .plaino-kbd-keys { flex: 0 0 auto; display: inline-flex; gap: 4px; }
  kbd.plaino-key {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 6px;
    border: 1px solid #e0d2c2;
    border-bottom-width: 2px;
    background: #fff;
    font: 600 12px ui-monospace, "SF Mono", Menlo, monospace;
    color: #6a4a34;
  }
  .plaino-kbd-label { font-size: 13px; line-height: 1.4; color: #5a4a3c; }
  .plaino-kbd-foot { margin-top: 18px; font-size: 12px; color: #9a8373; text-align: right; }
  .plaino-kbd-close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    font-size: 24px;
    line-height: 1;
    color: #9a8574;
    cursor: pointer;
  }
  .plaino-kbd-close:hover { background: rgba(0, 0, 0, 0.05); }
  @media (max-width: 620px) { .plaino-kbd-groups { grid-template-columns: 1fr; } }

  .plaino-kbd-toast {
    position: fixed;
    left: 50%;
    bottom: max(18px, env(safe-area-inset-bottom));
    transform: translate(-50%, 8px);
    z-index: 58;
    display: inline-flex;
    align-items: center;
    max-width: calc(100vw - 32px);
    padding: 10px 16px;
    border-radius: 13px;
    background: rgba(30, 18, 8, 0.92);
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 550;
    line-height: 1.3;
    box-shadow: 0 10px 26px rgba(40, 20, 5, 0.3);
    opacity: 0;
    cursor: pointer;
    transition: opacity 0.25s ease, transform 0.25s ease;
  }
  .plaino-kbd-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
  @media (prefers-reduced-motion: reduce) {
    .plaino-kbd-toast { transition: opacity 0.25s ease; }
  }
}
