/* Portal Tech Print v5.5.0 — compras diretas, pedidos Pix e colaboração */
:root {
  --tp-bg: #F1ECE6;
  --tp-surface: #FFF9F3;
  --tp-surface-2: #F7EEE5;
  --tp-surface-3: #EADDD1;
  --tp-surface-strong: #171313;
  --tp-text: #241C18;
  --tp-text-strong: #120E0C;
  --tp-text-muted: #6A5B52;
  --tp-line: #D8CABE;
  --tp-input: #FFFDF9;
  --tp-input-hover: #FFF7ED;
  --tp-hover: #F3E5D9;
  --tp-orange: var(--brand-accent, #FF770E);
  --tp-orange-dark: #A94100;
  --tp-on-orange: var(--brand-on-accent, #101010);
  --tp-success: #087A4F;
  --tp-success-soft: #DCF4E8;
  --tp-warning: #8A5200;
  --tp-warning-soft: #FFF0CC;
  --tp-danger: #A52B24;
  --tp-danger-soft: #FDE2DE;
  --tp-info: #175C86;
  --tp-info-soft: #DDEFF8;
  --tp-shadow: 0 18px 48px rgba(56, 33, 18, .12);
  --panel: var(--tp-surface);
  --canvas: var(--tp-bg);
  --input: var(--tp-input);
  --ink: var(--tp-text);
  --muted: var(--tp-text-muted);
  --line: var(--tp-line);
  --formula: #E6F3E9;
  --warning: var(--tp-warning-soft);
  --danger-soft: var(--tp-danger-soft);
  --success-soft: var(--tp-success-soft);
  --shadow: var(--tp-shadow);
  color-scheme: light;
}

html[data-theme="dark"] {
  --tp-bg: #080809;
  --tp-surface: #151517;
  --tp-surface-2: #1D1D20;
  --tp-surface-3: #29292D;
  --tp-surface-strong: #050506;
  --tp-text: #E9E1D9;
  --tp-text-strong: #FFF8F0;
  --tp-text-muted: #B9AAA0;
  --tp-line: #3A3534;
  --tp-input: #202023;
  --tp-input-hover: #29272A;
  --tp-hover: #262326;
  --tp-orange-dark: #FF9D58;
  --tp-success: #66DDA4;
  --tp-success-soft: #123426;
  --tp-warning: #FFD08A;
  --tp-warning-soft: #3A2810;
  --tp-danger: #FF928A;
  --tp-danger-soft: #3D1C1A;
  --tp-info: #8ED3FF;
  --tp-info-soft: #153447;
  --tp-shadow: 0 20px 58px rgba(0, 0, 0, .42);
  --panel: var(--tp-surface);
  --canvas: var(--tp-bg);
  --input: var(--tp-input);
  --ink: var(--tp-text);
  --muted: var(--tp-text-muted);
  --line: var(--tp-line);
  --formula: #182A20;
  --warning: var(--tp-warning-soft);
  --danger-soft: var(--tp-danger-soft);
  --success-soft: var(--tp-success-soft);
  --shadow: var(--tp-shadow);
  color-scheme: dark;
}

html, body { background: var(--tp-bg); color: var(--tp-text); }
body {
  background-image:
    radial-gradient(circle at 88% -8%, rgba(var(--brand-accent-rgb, 255,119,14), .09), transparent 31%),
    linear-gradient(180deg, var(--tp-bg), var(--tp-bg));
}

h1, h2, h3, h4, h5, h6, strong, b, .record-title, .item-sku, .settings-rail-header strong,
.workspace-context strong, .command-item strong, .viewer-stat strong, .product-card h3,
.portal-request h3, .summary-row strong, .role-card strong, .kpi-card strong {
  color: var(--tp-text-strong);
}

p, td, li, label, .card-note, .record-meta, .muted, small, .page-head p,
.help-step p, .product-card p, .portal-request p, .settings-rail-header span {
  color: var(--tp-text-muted);
}

::selection { background: rgba(var(--brand-accent-rgb, 255,119,14), .32); color: var(--tp-text-strong); }

.card, .step-section, .kpi-card, .product-card, .role-card, .portal-request,
.sensitivity-cell, .item-editor, .record-card, .table-wrap, .modal-panel,
.command-panel, .action-tile, .palette-preset, .choice-card, .settings-rail,
.viewer-sidebar, .store-toolbar, .logo-uploader, .brand-editor-grid > .card,
.quote-grid .card, .summary-box, .gcode-dropzone, .mw-result-card,
.tech-file-card, .analysis-result, .metric-card {
  background: var(--tp-surface);
  border-color: var(--tp-line);
  color: var(--tp-text);
}

.card-head, .step-head, .modal-head, .modal-foot, .settings-rail-header,
.item-editor-head, .toolbar, .command-search-row {
  background: linear-gradient(180deg, var(--tp-surface-2), var(--tp-surface));
  border-color: var(--tp-line);
  color: var(--tp-text-strong);
}

.card-head h2, .card-head h3, .step-head h3, .modal-head h3 { color: var(--tp-text-strong); }
.card-body, .step-body, .modal-body { color: var(--tp-text); }

.field label { color: var(--tp-text-strong); }
.field small { color: var(--tp-text-muted); }
.field input, .field select, .field textarea, .cell-input, .search,
.calc-table input, .calc-table select, .command-search-row input {
  color: var(--tp-text-strong);
  background: var(--tp-input);
  border-color: var(--tp-line);
  caret-color: var(--tp-orange);
}
.field input:hover, .field select:hover, .field textarea:hover, .cell-input:hover, .search:hover,
.calc-table input:hover, .calc-table select:hover { background: var(--tp-input-hover); }
.field input:focus, .field select:focus, .field textarea:focus, .cell-input:focus, .search:focus,
.calc-table input:focus, .calc-table select:focus {
  border-color: var(--tp-orange);
  box-shadow: 0 0 0 3px rgba(var(--brand-accent-rgb, 255,119,14), .20);
  outline: none;
}
::placeholder { color: color-mix(in srgb, var(--tp-text-muted) 80%, transparent); opacity: 1; }

.field input[readonly], .calc-table .computed, .computed-box {
  color: var(--tp-text-strong);
  background: var(--formula);
  border-color: color-mix(in srgb, var(--tp-success) 36%, var(--tp-line));
}

.checkbox, .field.inline { color: var(--tp-text-strong) !important; background: var(--tp-surface-2) !important; border-color: var(--tp-line) !important; }
.checkbox input, input[type="checkbox"], input[type="radio"] { accent-color: var(--tp-orange); }

.btn { border-color: var(--tp-line); }
.btn.primary {
  color: var(--tp-on-orange) !important;
  background: linear-gradient(135deg, var(--tp-orange), color-mix(in srgb, var(--tp-orange) 78%, #C34700));
  border-color: color-mix(in srgb, var(--tp-orange) 70%, #7C2D00);
  box-shadow: 0 9px 24px rgba(var(--brand-accent-rgb, 255,119,14), .23);
}
.btn.primary:hover { filter: brightness(1.06); transform: translateY(-1px); }
.btn.secondary { color: #FFF8F0; background: #211A17; border-color: #44342C; }
html[data-theme="dark"] .btn.secondary { color: #FFF8F0; background: #2D2929; border-color: #4D4745; }
.btn.ghost { color: var(--tp-text-strong); background: var(--tp-surface-2); border-color: var(--tp-line); }
.btn.ghost:hover, .btn.soft:hover { color: var(--tp-text-strong); background: var(--tp-hover); }
.btn.soft { color: var(--tp-text-strong); background: color-mix(in srgb, var(--tp-orange) 11%, var(--tp-surface)); border-color: color-mix(in srgb, var(--tp-orange) 24%, var(--tp-line)); }
.btn.danger, .icon-btn.danger { color: var(--tp-danger); background: var(--tp-danger-soft); border-color: color-mix(in srgb, var(--tp-danger) 32%, var(--tp-line)); }
.icon-btn { color: var(--tp-text-strong); background: var(--tp-surface-2); border-color: var(--tp-line); }
.icon-btn:hover { background: var(--tp-hover); }

.badge { color: var(--tp-text-strong); background: var(--tp-surface-3); border: 1px solid var(--tp-line); }
.badge.success { color: var(--tp-success); background: var(--tp-success-soft); border-color: color-mix(in srgb, var(--tp-success) 28%, var(--tp-line)); }
.badge.warning { color: var(--tp-warning); background: var(--tp-warning-soft); border-color: color-mix(in srgb, var(--tp-warning) 28%, var(--tp-line)); }
.badge.danger { color: var(--tp-danger); background: var(--tp-danger-soft); border-color: color-mix(in srgb, var(--tp-danger) 28%, var(--tp-line)); }
.badge.info { color: var(--tp-info); background: var(--tp-info-soft); border-color: color-mix(in srgb, var(--tp-info) 28%, var(--tp-line)); }

.notice { color: var(--tp-warning); background: var(--tp-warning-soft); border-color: color-mix(in srgb, var(--tp-warning) 22%, var(--tp-line)); }
.notice.success { color: var(--tp-success); background: var(--tp-success-soft); border-color: color-mix(in srgb, var(--tp-success) 22%, var(--tp-line)); }
.notice.danger { color: var(--tp-danger); background: var(--tp-danger-soft); border-color: color-mix(in srgb, var(--tp-danger) 22%, var(--tp-line)); }
.danger-text { color: var(--tp-danger) !important; }

.table-wrap { overflow: auto; }
table { color: var(--tp-text); background: var(--tp-surface); }
table th {
  color: var(--tp-text-strong);
  background: var(--tp-surface-2);
  border-color: var(--tp-line);
}
table td { color: var(--tp-text); background: var(--tp-surface); border-color: var(--tp-line); }
table tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--tp-surface-2) 55%, var(--tp-surface)); }
table tbody tr:hover td { background: color-mix(in srgb, var(--tp-orange) 7%, var(--tp-surface)); }
.table-empty { color: var(--tp-text-muted); }
.num { color: var(--tp-text-strong); }

.item-editor-head { color: var(--tp-text-strong); }
.item-index { color: #FFF8F0; background: #171313; }
.item-total-box { color: #FFF8F0; background: #111010; border: 1px solid #393333; }
.item-total-box .label { color: #CFC4BC; }
.item-total-box strong { color: #FFF8F0; }
html[data-theme="dark"] .item-total-box { background: #050506; border-color: #3B3635; }

.kpi, .kpi-card { background: var(--tp-surface); border-color: var(--tp-line); }
.kpi .label, .kpi .sub, .kpi-card small { color: var(--tp-text-muted); }
.kpi .value, .kpi-card .value { color: var(--tp-orange); }
.kpi.hero { background: linear-gradient(135deg, #171313, #2A160A); color: #FFF8F0; }
.kpi.hero .label, .kpi.hero .sub { color: #D7C8BC; }
.kpi.hero .value { color: #FF8A32; }

.summary-dark { color: #F4EDE7; background: linear-gradient(160deg, #171313, #090909); border-color: #3E342E; }
.summary-dark .card-head, .summary-dark .summary-hero { background: rgba(255, 255, 255, .045); border-color: rgba(255, 255, 255, .10); }
.summary-dark .card-head h2, .summary-dark .card-head h3, .summary-dark .summary-line strong, .summary-dark .mini-kpi strong { color: #FFF8F0; }
.summary-dark .summary-line, .summary-dark .mini-kpi small, .summary-dark .summary-hero small, .summary-dark .summary-hero .muted { color: #C9BDB5; }
.summary-dark .summary-hero.accent { background: linear-gradient(135deg, rgba(var(--brand-accent-rgb,255,119,14),.25), rgba(var(--brand-accent-rgb,255,119,14),.09)); border-color: rgba(var(--brand-accent-rgb,255,119,14),.38); }
.summary-dark .summary-hero.accent b { color: #FF8A32; }

.store-toolbar { border-color: var(--tp-line); }
.product-media { background: linear-gradient(145deg, var(--tp-surface-3), var(--tp-surface-2)); }
.product-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: var(--product-fit, contain) !important;
  object-position: var(--product-position, 50% 50%);
  transform: scale(var(--product-zoom, 1));
  transform-origin: center;
}
.product-media .cube-placeholder { color: var(--tp-orange); opacity: .72; }
.product-price { color: var(--tp-orange-dark); }
.product-meta { color: var(--tp-text); }

.product-carousel-slides { position: absolute; inset: 0; overflow: hidden; }
.product-carousel-image {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .24s ease;
}
.product-carousel-image.is-active { opacity: 1; pointer-events: auto; }
.product-carousel-arrow {
  position: absolute;
  z-index: 4;
  top: 50%;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 50%;
  color: #FFFFFF;
  background: rgba(9,9,10,.72);
  box-shadow: 0 8px 24px rgba(0,0,0,.24);
  font: 800 28px/1 system-ui,sans-serif;
  cursor: pointer;
  transform: translateY(-50%);
  backdrop-filter: blur(8px);
}
.product-carousel-arrow:hover { background: var(--tp-orange); color: var(--tp-on-orange); }
.product-carousel-arrow:focus-visible { outline: 3px solid color-mix(in srgb,var(--tp-orange) 72%,white); outline-offset: 2px; }
.product-carousel-arrow.is-prev { left: 12px; }
.product-carousel-arrow.is-next { right: 12px; }
.product-carousel-dots { position: absolute; z-index: 4; left: 50%; bottom: 14px; display: flex; gap: 7px; transform: translateX(-50%); padding: 7px 9px; border-radius: 999px; background: rgba(9,9,10,.62); backdrop-filter: blur(8px); }
.product-carousel-dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.52); cursor: pointer; }
.product-carousel-dot.is-active { width: 24px; border-radius: 999px; background: var(--tp-orange); }
.product-carousel-count { position: absolute; z-index: 4; right: 12px; bottom: 14px; min-width: 45px; padding: 6px 8px; border-radius: 999px; color: #FFFFFF; background: rgba(9,9,10,.68); font-size: 12px; font-weight: 800; text-align: center; backdrop-filter: blur(8px); }

.catalog-media-editor { padding: 18px; border: 1px solid var(--tp-line); border-radius: 18px; background: color-mix(in srgb,var(--tp-surface-2) 72%,var(--tp-surface)); }
.catalog-media-editor-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 16px; }
.catalog-media-editor-head h3 { margin: 2px 0 4px; font-size: 20px; }
.catalog-media-editor-head p { margin: 0; color: var(--tp-text-muted); font-size: 13px; }
.catalog-media-editor-grid { display: grid; grid-template-columns: minmax(280px,.9fr) minmax(280px,1.1fr); gap: 18px; align-items: start; }
.catalog-cover-preview { position: relative; width: 100%; max-width: 520px; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--tp-line-strong); border-radius: 16px; background: linear-gradient(145deg,var(--tp-surface-3),var(--tp-surface-2)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.025); }
.catalog-cover-preview > img { display: block; width: 100%; height: 100%; transform-origin: center; }
.catalog-cover-empty { display: grid; gap: 14px; place-items: center; padding: 30px; color: var(--tp-text-muted); text-align: center; }
.catalog-cover-empty .cube-placeholder { width: 82px; color: var(--tp-orange); opacity: .66; }
.catalog-media-controls { display: grid; gap: 10px; }
.catalog-media-controls .field { margin: 0; }
.catalog-media-controls input[type="range"] { width: 100%; accent-color: var(--tp-orange); }
.catalog-media-controls output { float: right; color: var(--tp-orange); font-weight: 900; }
.catalog-media-thumbs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin-top: 11px; }
.catalog-media-thumb { min-width: 0; overflow: hidden; border: 1px solid var(--tp-line); border-radius: 12px; background: var(--tp-surface); }
.catalog-media-thumb.is-cover { border-color: color-mix(in srgb,var(--tp-orange) 72%,var(--tp-line)); box-shadow: 0 0 0 2px rgba(var(--brand-accent-rgb,255,119,14),.12); }
.catalog-media-thumb-image { position: relative; width: 100%; aspect-ratio: 1; display: block; padding: 0; overflow: hidden; border: 0; background: var(--tp-surface-3); cursor: pointer; }
.catalog-media-thumb-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.catalog-media-thumb-image span { position: absolute; left: 7px; top: 7px; padding: 4px 7px; border-radius: 999px; color: var(--tp-on-orange); background: var(--tp-orange); font-size: 11px; font-weight: 900; }
.catalog-media-thumb-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; padding: 5px; }
.catalog-media-thumb-actions .icon-btn { width: 100%; min-width: 0; height: 30px; }
.catalog-media-add { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding: 15px; border: 1px dashed color-mix(in srgb,var(--tp-orange) 48%,var(--tp-line)); border-radius: 14px; background: color-mix(in srgb,var(--tp-orange) 5%,var(--tp-surface)); }
.catalog-media-add > div { display: grid; gap: 3px; }
.catalog-media-add small { color: var(--tp-text-muted); }
.catalog-media-add.drop-active { border-color: var(--tp-orange); background: color-mix(in srgb,var(--tp-orange) 13%,var(--tp-surface)); }
.catalog-media-url { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 10px; margin-top: 12px; }
.catalog-media-url .field { margin: 0; }

.viewer-sidebar { color: var(--tp-text); }
.viewer-stage { background: radial-gradient(circle at 50% 38%, #292327, #0B0B0C 70%); border-color: #3A3230; }
.viewer-stat { background: var(--tp-surface-2); border-color: var(--tp-line); }
.viewer-stat span { color: var(--tp-text-muted); }
.viewer-stat strong { color: var(--tp-text-strong); }
.viewer-overlay .viewer-drop { color: #FFF8F0; background: rgba(8, 8, 9, .78); border-color: rgba(255, 138, 50, .48); }
.viewer-overlay .viewer-drop div { color: #D8CCC4 !important; }

.modal { background: rgba(4, 4, 5, .72); backdrop-filter: blur(7px); }
.modal-panel { box-shadow: 0 32px 90px rgba(0, 0, 0, .48); }
.modal-foot { border-color: var(--tp-line); }

.settings-tab { color: var(--tp-text); background: transparent; }
.settings-tab:hover { color: var(--tp-text-strong); background: var(--tp-hover); }
.settings-tab.active { color: var(--tp-text-strong); background: color-mix(in srgb, var(--tp-orange) 17%, var(--tp-surface)); border-color: color-mix(in srgb, var(--tp-orange) 40%, var(--tp-line)); }
.palette-preset { color: var(--tp-text-strong); }
.palette-preset:hover { background: var(--tp-hover); }

.action-tile { color: var(--tp-text); }
.action-tile:hover { color: var(--tp-text-strong); background: color-mix(in srgb, var(--tp-orange) 8%, var(--tp-surface)); border-color: color-mix(in srgb, var(--tp-orange) 38%, var(--tp-line)); }
.action-tile small { color: var(--tp-text-muted); }

.command-item { color: var(--tp-text); background: transparent; }
.command-item:hover, .command-item.active { color: var(--tp-text-strong); background: color-mix(in srgb, var(--tp-orange) 12%, var(--tp-surface)); }
.command-item small { color: var(--tp-text-muted); }
.command-item-icon, .command-item kbd { color: var(--tp-orange-dark); background: color-mix(in srgb, var(--tp-orange) 12%, var(--tp-surface)); border-color: color-mix(in srgb, var(--tp-orange) 25%, var(--tp-line)); }
.command-hint, .command-section-label, .command-empty { color: var(--tp-text-muted); }

.role-chip { color: #FFF8F0; }
.owner-signature { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.owner-name { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 999px; color: var(--tp-text-strong); background: color-mix(in srgb, var(--tp-orange) 12%, var(--tp-surface)); border: 1px solid color-mix(in srgb, var(--tp-orange) 30%, var(--tp-line)); font-weight: 850; }
.owner-name::before { content: "◆"; color: var(--tp-orange); font-size: 9px; }

/* Proposta na tela: marfim suave para evitar branco estourado. Na impressão volta a branco. */
.proposal-stage { background: var(--tp-surface-2); }
.proposal-paper { color: #201A16 !important; background: #FFF9F0 !important; border: 1px solid #E2D5C9; }
.proposal-paper * { color-scheme: light; }
.proposal-table td { color: #2B211B; background: #FFF9F0; }
.proposal-table tbody tr:nth-child(even) td { background: #F8EEE4; }
.proposal-box, .proposal-term, .proposal-total, .proposal-approval { border-color: #D8C8B8; }

/* Centro MakerWorld */
.mw-layout, .gcode-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .72fr); min-height: 620px; }
.mw-main, .gcode-main { padding: 20px; overflow: auto; }
.mw-sidebar, .gcode-sidebar { padding: 18px; background: var(--tp-surface-2); border-left: 1px solid var(--tp-line); overflow: auto; }
.mw-search-row { display: grid; grid-template-columns: 1fr auto; gap: 9px; }
.mw-result-card { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 18px; padding: 16px; border: 1px solid var(--tp-line); border-radius: 16px; }
.mw-cover { min-height: 170px; border-radius: 13px; overflow: hidden; background: linear-gradient(145deg, var(--tp-surface-3), var(--tp-surface-2)); display: grid; place-items: center; }
.mw-cover img { width: 100%; height: 100%; object-fit: cover; }
.mw-cover svg { width: 76px; color: var(--tp-orange); }
.mw-title { margin: 0 0 5px; font-size: 22px; color: var(--tp-text-strong); }
.mw-description { max-height: 116px; overflow: auto; color: var(--tp-text-muted); }
.mw-meta-grid, .analysis-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin-top: 14px; }
.metric-card { padding: 11px; border: 1px solid var(--tp-line); border-radius: 12px; }
.metric-card span { display: block; color: var(--tp-text-muted); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.metric-card strong { display: block; margin-top: 4px; color: var(--tp-text-strong); font-size: 14px; }
.profile-list { display: grid; gap: 9px; margin-top: 12px; }
.profile-option { display: grid; grid-template-columns: auto 1fr auto; gap: 11px; align-items: center; padding: 12px; border: 1px solid var(--tp-line); border-radius: 12px; background: var(--tp-surface); color: var(--tp-text); }
.profile-option:hover { border-color: var(--tp-orange); background: color-mix(in srgb, var(--tp-orange) 7%, var(--tp-surface)); }
.profile-option small { color: var(--tp-text-muted); }
.mw-attribution { margin-top: 12px; padding: 11px; border-left: 3px solid var(--tp-orange); background: color-mix(in srgb, var(--tp-orange) 8%, var(--tp-surface)); color: var(--tp-text); border-radius: 0 10px 10px 0; }

/* Analisador G-code */
.gcode-dropzone { min-height: 180px; display: grid; place-items: center; padding: 28px; border: 2px dashed color-mix(in srgb, var(--tp-orange) 48%, var(--tp-line)); border-radius: 17px; text-align: center; background: color-mix(in srgb, var(--tp-orange) 4%, var(--tp-surface)); transition: .18s ease; }
.gcode-dropzone.dragging { border-color: var(--tp-orange); background: color-mix(in srgb, var(--tp-orange) 10%, var(--tp-surface)); transform: scale(1.005); }
.gcode-dropzone .gcode-icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 16px; color: var(--tp-on-orange); background: var(--tp-orange); font-size: 22px; font-weight: 950; box-shadow: 0 12px 28px rgba(var(--brand-accent-rgb,255,119,14),.25); }
.gcode-progress { height: 8px; overflow: hidden; border-radius: 999px; background: var(--tp-surface-3); }
.gcode-progress > i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--tp-orange), #FFB067); transition: width .12s linear; }
.analysis-result { margin-top: 15px; padding: 16px; border: 1px solid var(--tp-line); border-radius: 16px; }
.analysis-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.analysis-breakdown { display: grid; gap: 8px; margin-top: 14px; }
.analysis-breakdown-row { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--tp-line); }
.analysis-breakdown-row:last-child { border-bottom: 0; }
.analysis-breakdown-row span { color: var(--tp-text-muted); }
.analysis-breakdown-row strong { color: var(--tp-text-strong); }
.analysis-breakdown-row.total { margin-top: 4px; padding: 12px; border: 0; border-radius: 11px; background: color-mix(in srgb, var(--tp-orange) 11%, var(--tp-surface)); }
.analysis-breakdown-row.total strong { color: var(--tp-orange-dark); font-size: 18px; }
.analysis-warnings { display: grid; gap: 7px; margin-top: 12px; }
.analysis-warning { padding: 9px 10px; border-radius: 10px; color: var(--tp-warning); background: var(--tp-warning-soft); border: 1px solid color-mix(in srgb, var(--tp-warning) 25%, var(--tp-line)); }
.file-pill { display: flex; gap: 9px; align-items: center; padding: 9px 11px; border-radius: 11px; color: var(--tp-text); background: var(--tp-surface); border: 1px solid var(--tp-line); }
.file-pill strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-pill span { margin-left: auto; color: var(--tp-text-muted); white-space: nowrap; }
.tech-file-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.tech-file-card { padding: 13px; border: 1px solid var(--tp-line); border-radius: 13px; }
.tech-file-card h4 { margin: 0 0 5px; }
.tech-file-card p { margin: 0 0 10px; font-size: 12px; }

/* Accessibility */
:focus-visible { outline: 3px solid color-mix(in srgb, var(--tp-orange) 80%, white); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
@media (prefers-contrast: more) {
  :root, html[data-theme="dark"] { --tp-line: color-mix(in srgb, var(--tp-text) 58%, transparent); }
  .btn, input, select, textarea, .card, .record-card, .item-editor, table { border-width: 2px; }
}

@media (max-width: 980px) {
  .mw-layout, .gcode-layout { grid-template-columns: 1fr; }
  .mw-sidebar, .gcode-sidebar { border-left: 0; border-top: 1px solid var(--tp-line); }
  .mw-meta-grid, .analysis-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .mw-result-card { grid-template-columns: 1fr; }
  .mw-cover { min-height: 210px; }
  .mw-meta-grid, .analysis-metrics, .tech-file-grid { grid-template-columns: 1fr; }
  .mw-search-row { grid-template-columns: 1fr; }
}

@media print {
  .proposal-paper { background: #FFFFFF !important; border: 0 !important; }
  .proposal-table td { background: #FFFFFF !important; }
  .proposal-table tbody tr:nth-child(even) td { background: #F7F7F7 !important; }
}

/* ============================================================
   Portal Tech Print v5.4 — central de precificação e orçamento
   ============================================================ */
.pricing-page { --pricing-radius: 18px; display: grid; gap: 18px; }
.page-eyebrow { display: block; margin-bottom: 6px; color: var(--tp-orange-dark); font-size: 11px; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.pricing-page-head { margin-bottom: 0 !important; }
.pricing-page-head h1 { margin-bottom: 6px !important; letter-spacing: -.035em; }
.pricing-page-head p { max-width: 760px; font-size: 14px; line-height: 1.55; }
.pricing-tabs { width: max-content; max-width: 100%; padding: 5px !important; gap: 4px !important; border: 1px solid var(--tp-line); border-radius: 14px; background: var(--tp-surface-2); overflow-x: auto; }
.pricing-tabs .subtab { min-height: 40px; margin: 0 !important; padding: 9px 14px !important; border: 0 !important; border-radius: 10px !important; white-space: nowrap; }
.pricing-tabs .subtab.active { color: #1B110A !important; background: linear-gradient(135deg, #FF770E, #FFA251) !important; box-shadow: 0 8px 20px rgba(255,119,14,.19); }

.pricing-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, 380px); gap: 18px; align-items: start; }
.pricing-main { min-width: 0; display: grid; gap: 16px; }
.quote-section, .pricing-step, .quote-summary .card, .cost-summary { border-radius: var(--pricing-radius) !important; overflow: hidden; box-shadow: 0 12px 30px rgba(15,10,7,.07) !important; }
.quote-section-head, .pricing-step .step-head { min-height: 76px; padding: 16px 18px !important; }
.section-heading { display: flex; align-items: center; gap: 12px; min-width: 0; }
.section-heading h2, .section-heading p { margin: 0; }
.section-heading p { margin-top: 3px; color: var(--tp-text-muted); font-size: 12px; line-height: 1.4; }
.section-number, .pricing-step .step-number { flex: 0 0 auto; width: 34px !important; height: 34px !important; display: grid; place-items: center; border-radius: 11px !important; color: #1A1009 !important; background: linear-gradient(135deg, #FF770E, #FFAE69) !important; border: 0 !important; font-size: 14px !important; font-weight: 950 !important; box-shadow: 0 7px 18px rgba(255,119,14,.2); }

.quote-progress { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 24px; align-items: center; padding: 14px 18px; border: 1px solid var(--tp-line); border-radius: 16px; background: var(--tp-surface); }
.quote-progress-status { display: grid; gap: 2px; min-width: 150px; }
.quote-progress-status strong { font-size: 13px; }
.quote-progress-status span { color: var(--tp-text-muted); font-size: 12px; }
.quote-progress-steps { display: flex; align-items: center; justify-content: flex-end; min-width: 0; }
.quote-progress-step { display: flex; align-items: center; gap: 9px; color: var(--tp-text-muted); opacity: .72; }
.quote-progress-step > span { width: 29px; height: 29px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--tp-line); border-radius: 50%; background: var(--tp-surface-2); font-weight: 900; }
.quote-progress-step > div { display: grid; gap: 1px; white-space: nowrap; }
.quote-progress-step strong { color: inherit !important; font-size: 12px; }
.quote-progress-step small { font-size: 10px; }
.quote-progress-step.active, .quote-progress-step.done { color: var(--tp-text-strong); opacity: 1; }
.quote-progress-step.active > span { color: #1A1009; background: var(--tp-orange); border-color: var(--tp-orange); }
.quote-progress-step.done > span { color: #082A1D; background: #65DFA5; border-color: #65DFA5; }
.quote-progress-line { width: clamp(18px, 3.5vw, 55px); height: 1px; margin: 0 10px; background: var(--tp-line); }

.quote-item-list { padding: 16px !important; gap: 14px !important; }
.quote-item { border-radius: 15px !important; }
.quote-item .item-editor-head { min-height: 54px; padding: 10px 13px !important; }
.quote-item .item-editor-title > div { display: grid; gap: 2px; }
.quote-item .item-editor-title small { color: var(--tp-text-muted); font-size: 11px; }
.quote-item .item-editor-main { grid-template-columns: minmax(160px,.9fr) minmax(250px,1.6fr) 92px 92px minmax(145px,.75fr); gap: 12px; padding: 15px; }
.quote-item .item-total-box { min-height: 76px; display: flex; flex-direction: column; justify-content: center; padding: 11px 13px; border-radius: 12px; background: color-mix(in srgb, var(--tp-orange) 10%, var(--tp-surface-2)); border: 1px solid color-mix(in srgb, var(--tp-orange) 30%, var(--tp-line)); }
.quote-item .item-total-box .value { color: var(--tp-orange-dark) !important; font-size: 22px; line-height: 1.15; }
.quote-item .item-total-box small { margin-top: 3px; color: var(--tp-text-muted); font-size: 10px; }
.item-pricing-label { display: flex; justify-content: space-between; gap: 12px; padding: 9px 15px 0; border-top: 1px solid var(--tp-line); color: var(--tp-text-muted); font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .055em; }
.item-pricing-label strong { color: var(--tp-orange-dark) !important; font-size: 11px; }
.quote-item .item-editor-advanced { padding: 10px 15px 15px; background: var(--tp-surface-2); }
.quote-workspace .field label, .cost-workspace .field label { margin-bottom: 7px; font-size: 12px !important; letter-spacing: .01em; }
.quote-workspace .field small, .cost-workspace .field small { margin-top: 6px; font-size: 11px; line-height: 1.35; }
.quote-summary { top: 88px !important; gap: 14px; }
.quote-summary .card-head, .cost-summary .card-head { padding: 15px 17px !important; }
.quote-summary .card-body, .cost-summary .card-body { padding: 16px !important; }
.quote-summary-actions, .cost-summary-actions { display: grid !important; gap: 9px; margin-top: 14px; }
.quote-summary-actions .btn, .cost-summary-actions .btn { width: 100%; min-height: 44px; }
.quote-summary-actions small { text-align: center; color: var(--tp-text-muted); font-size: 10px; line-height: 1.35; }

.pricing-overview-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--tp-line); border-radius: 17px; overflow: hidden; background: var(--tp-surface); box-shadow: 0 10px 28px rgba(15,10,7,.06); }
.pricing-overview-strip > div { min-width: 0; padding: 15px 17px; border-right: 1px solid var(--tp-line); }
.pricing-overview-strip > div:last-child { border-right: 0; }
.pricing-overview-strip span, .pricing-overview-strip small { display: block; color: var(--tp-text-muted); }
.pricing-overview-strip span { margin-bottom: 5px; font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.pricing-overview-strip strong { display: block; overflow: hidden; color: var(--tp-text-strong); font-size: clamp(20px,2vw,28px); line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.pricing-overview-strip small { margin-top: 5px; font-size: 10px; }
.pricing-overview-strip .featured { background: linear-gradient(135deg, #2B170B, #4A260D); }
.pricing-overview-strip .featured span, .pricing-overview-strip .featured small { color: #E9CDB6 !important; }
.pricing-overview-strip .featured strong { color: #FF994C !important; }
.cost-start-actions { justify-content: space-between; margin-top: 15px !important; padding-top: 15px; border-top: 1px solid var(--tp-line); }
.cost-start-actions select { width: min(100%, 360px); max-width: 360px !important; }
.progressive-fields { margin-top: 14px; border: 1px solid var(--tp-line); border-radius: 13px; background: var(--tp-surface-2); overflow: hidden; }
.progressive-fields summary { position: relative; padding: 13px 42px 13px 14px; color: var(--tp-text-strong); cursor: pointer; font-size: 12px; font-weight: 900; list-style: none; }
.progressive-fields summary::-webkit-details-marker { display: none; }
.progressive-fields summary::after { content: "+"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--tp-orange-dark); font-size: 20px; line-height: 1; }
.progressive-fields[open] summary::after { content: "−"; }
.progressive-fields-body { padding: 14px; border-top: 1px solid var(--tp-line); }
.pricing-step .step-body { padding: 16px !important; }
.cost-summary .summary-hero { border-radius: 14px !important; }
.cost-summary .summary-hero.accent { background: linear-gradient(135deg, #2A160A, #4B270E) !important; border: 1px solid rgba(255,119,14,.28); }
.cost-summary .summary-hero.accent small, .cost-summary .summary-hero.accent div { color: #E8CAB2 !important; }
.cost-summary .summary-hero.accent b { color: #FF994C !important; }

/* A marca pequena usa o arquivo quadrado e fica opticamente centralizada. */
.sidebar .brand-mark { padding: 0 !important; background: #09090A !important; border-color: #393536 !important; }
.sidebar .brand-mark img { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center !important; transform: none !important; }
.dashboard-logo-orbit { transform: none !important; }
.dashboard-logo-orbit img { transform: none !important; }

@media (max-width: 1220px) {
  .pricing-layout { grid-template-columns: 1fr; }
  .quote-summary, .cost-summary { position: static !important; }
  .quote-item .item-editor-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .quote-item .item-total-box { grid-column: span 2; }
}
@media (max-width: 900px) {
  .quote-progress { grid-template-columns: 1fr; gap: 12px; }
  .quote-progress-steps { justify-content: flex-start; overflow-x: auto; padding-bottom: 3px; }
  .pricing-overview-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pricing-overview-strip > div:nth-child(2) { border-right: 0; }
  .pricing-overview-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--tp-line); }
}
@media (max-width: 620px) {
  .pricing-page { gap: 14px; }
  .pricing-tabs { width: 100%; }
  .pricing-page-head .head-actions { width: 100%; }
  .pricing-page-head .head-actions .btn { flex: 1 1 auto; }
  .quote-progress-step > div { display: none; }
  .quote-progress-line { width: 32px; }
  .quote-item .item-editor-main, .quote-item .item-editor-advanced, .cost-product-grid, .progressive-fields-body { grid-template-columns: 1fr !important; }
  .quote-item .item-total-box { grid-column: auto; }
  .item-pricing-label { align-items: flex-start; flex-direction: column; gap: 3px; }
  .pricing-overview-strip { grid-template-columns: 1fr; }
  .pricing-overview-strip > div { border-right: 0; border-bottom: 1px solid var(--tp-line); }
  .pricing-overview-strip > div:last-child { border-bottom: 0; }
  .cost-start-actions { align-items: stretch; flex-direction: column; }
  .cost-start-actions select { width: 100%; max-width: none !important; }
}

/* ============================================================
   Portal Tech Print v5.3 — acabamento visual e contraste global
   ============================================================ */

/* Superfícies que no tema legado tinham branco fixo */
.record-card, .item-editor, .step-section, .kpi-card, .product-card, .role-card,
.portal-request, .sensitivity-cell, .viewer-sidebar, .cloud-status, .modal-foot,
.table-wrap, .brand-editor-grid > .card, .choice-card, .action-tile, .settings-rail,
.store-toolbar, .control-note, .summary-box, .computed-box {
  background-color: var(--tp-surface) !important;
  color: var(--tp-text) !important;
  border-color: var(--tp-line) !important;
}
.item-editor-head, .step-head, .card-head, .modal-head, .modal-foot, .toolbar,
.settings-rail-header {
  background: linear-gradient(180deg, var(--tp-surface-2), var(--tp-surface)) !important;
  color: var(--tp-text-strong) !important;
  border-color: var(--tp-line) !important;
}
.control-note { background: var(--tp-surface-2) !important; color: var(--tp-text-muted) !important; }
.cloud-status { background: var(--tp-surface-2) !important; }
.record-card > *, .item-editor > *, .portal-request > *, .role-card > * { color: inherit; }
.record-title, .portal-request h3, .role-card strong, .item-editor strong { color: var(--tp-text-strong) !important; }
.record-meta, .portal-request p, .role-card p { color: var(--tp-text-muted) !important; }

html[data-theme="dark"] .card-body,
html[data-theme="dark"] .record-card,
html[data-theme="dark"] .item-editor,
html[data-theme="dark"] .portal-request,
html[data-theme="dark"] .role-card,
html[data-theme="dark"] .viewer-sidebar,
html[data-theme="dark"] .table-wrap,
html[data-theme="dark"] .modal-panel,
html[data-theme="dark"] .settings-content,
html[data-theme="dark"] .settings-pane {
  background: var(--tp-surface) !important;
  color: var(--tp-text) !important;
}
html[data-theme="dark"] table,
html[data-theme="dark"] table tbody,
html[data-theme="dark"] table tr,
html[data-theme="dark"] table td {
  background-color: var(--tp-surface) !important;
  color: var(--tp-text) !important;
  border-color: var(--tp-line) !important;
}
html[data-theme="dark"] table tbody tr:nth-child(even) td { background-color: var(--tp-surface-2) !important; }
html[data-theme="dark"] table tbody tr:hover td { background-color: color-mix(in srgb, var(--tp-orange) 10%, var(--tp-surface)) !important; }
html[data-theme="dark"] table th { background: #252327 !important; color: #FFF7EF !important; border-color: #48413D !important; }
html[data-theme="dark"] .table-empty { background: transparent !important; color: #C7BAB0 !important; }
html[data-theme="dark"] .num, html[data-theme="dark"] td strong { color: #FFF7EF !important; }

/* Formulários: texto sempre legível no fundo correspondente */
input, select, textarea, option, .cell-input, .search,
.calc-table input, .calc-table select {
  color: var(--tp-text-strong) !important;
  background-color: var(--tp-input) !important;
  border-color: var(--tp-line) !important;
}
select option { background: var(--tp-surface) !important; color: var(--tp-text-strong) !important; }
input::placeholder, textarea::placeholder { color: var(--tp-text-muted) !important; opacity: .88 !important; }
input[disabled], select[disabled], textarea[disabled], button[disabled] {
  opacity: .64;
  filter: saturate(.65);
  cursor: not-allowed;
}
html[data-theme="dark"] input[readonly], html[data-theme="dark"] .computed,
html[data-theme="dark"] .computed-box { background: #17251C !important; color: #E8F7ED !important; border-color: #375444 !important; }

/* Botões e etiquetas: contraste calculado por função, não por herança */
.btn.primary, .sidebar .nav-btn.active { color: var(--tp-on-orange) !important; }
.btn.secondary { color: #FFF8F0 !important; }
.btn.ghost, .btn.soft, .icon-btn { color: var(--tp-text-strong) !important; }
.btn.tiny { min-height: 34px; }
.badge { color: var(--tp-text-strong) !important; }
.badge.success { color: var(--tp-success) !important; }
.badge.warning { color: var(--tp-warning) !important; }
.badge.danger { color: var(--tp-danger) !important; }
.badge.info { color: var(--tp-info) !important; }
.sidebar .brand-title, .sidebar .workspace-card strong, .sidebar .nav-btn,
.sidebar .role-chip, .sidebar-version { color: #FFF7EF !important; }
.sidebar .brand-subtitle, .workspace-card span, .sidebar-version span { color: #CFC1B8 !important; }
.sidebar .nav-btn.active { background: linear-gradient(135deg, #FF770E, #FF9C45) !important; border-color: #FFB071 !important; }

/* Resumo do orçamento: o cartão escuro é sempre explicitamente escuro */
.sticky-summary .card, .summary-dark { background: var(--tp-surface) !important; color: var(--tp-text) !important; }
.sticky-summary .kpi:not(.hero) { background: var(--tp-surface-2) !important; color: var(--tp-text) !important; border: 1px solid var(--tp-line); }
.sticky-summary .kpi:not(.hero) .label, .sticky-summary .kpi:not(.hero) .sub { color: var(--tp-text-muted) !important; }
.sticky-summary .kpi:not(.hero) .value { color: var(--tp-orange-dark) !important; }
.summary-row, .summary-line { color: var(--tp-text-muted) !important; border-color: var(--tp-line) !important; }
.summary-row strong, .summary-line strong { color: var(--tp-text-strong) !important; }
.summary-row.total { background: color-mix(in srgb, var(--tp-orange) 10%, var(--tp-surface)) !important; border-radius: 10px; padding-inline: 10px; }
.summary-row.total strong { color: var(--tp-orange-dark) !important; }

/* Modais técnicos */
.technical-modal .modal-panel { width: min(1220px, 100%); max-height: min(92vh, 940px); overflow: hidden; }
.technical-modal .modal-head { position: sticky; top: 0; z-index: 3; }
.tp-loading { min-height: 190px; display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--tp-text); }
.tp-loading > span { width: 28px; height: 28px; border: 3px solid var(--tp-line); border-top-color: var(--tp-orange); border-radius: 50%; animation: tpSpin .75s linear infinite; }
.tp-loading strong, .tp-loading small { display: block; }
.tp-loading small { color: var(--tp-text-muted); margin-top: 3px; }
@keyframes tpSpin { to { transform: rotate(360deg); } }
.tp-model-placeholder { width: 82px; height: 82px; display: grid; place-items: center; border-radius: 25px; background: var(--tp-orange); color: var(--tp-on-orange); font-weight: 950; font-size: 26px; transform: rotate(-7deg); }
.tp-source-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 7px; }
.tp-profile-metrics { text-align: right; white-space: nowrap; }
.tp-profile-metrics strong, .tp-profile-metrics small { display: block; }
.tp-profile-metrics small { color: var(--tp-text-muted); }

/* Painel de ferramentas no cadastro de produto */
.tp-source-panel {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--tp-orange) 33%, var(--tp-line));
  border-radius: 15px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--tp-orange) 9%, var(--tp-surface)), var(--tp-surface));
}
.tp-source-panel strong { display: block; color: var(--tp-text-strong); font-size: 15px; }
.tp-source-panel p { margin: 4px 0 0; color: var(--tp-text-muted); font-size: 12px; }
.tp-source-kicker { display: block; margin-bottom: 4px; color: var(--tp-orange-dark); font-size: 9px; font-weight: 950; letter-spacing: .11em; }
.tp-tools-row { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.tp-source-badge { margin-top: 7px; padding: 5px 8px; width: fit-content; border-radius: 999px; color: var(--tp-orange-dark); background: color-mix(in srgb, var(--tp-orange) 10%, var(--tp-surface)); border: 1px solid color-mix(in srgb, var(--tp-orange) 28%, var(--tp-line)); font-size: 10px; font-weight: 800; }

/* Proprietários */
.tp-owner-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 15px 0 18px; }
.tp-owner-banner > span { color: #D8CBC2; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-hero .owner-name { color: #FFF8F0 !important; background: rgba(255,119,14,.15); border-color: rgba(255,153,77,.38); }
.tp-owner-access { margin-top: 12px; padding: 12px; border: 1px solid var(--tp-line); border-radius: 12px; background: var(--tp-surface-2); }
.tp-owner-access > span { display: block; margin-bottom: 8px; color: var(--tp-text-muted); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.tp-owner-inline { color: var(--tp-orange-dark) !important; }

/* Solicitação do cliente */
.tp-request-source { grid-column: 1 / -1; padding: 15px; border: 1px solid var(--tp-line); border-radius: 15px; background: var(--tp-surface-2); }
.tp-request-source-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.tp-request-source-head strong { display: block; color: var(--tp-text-strong); }
.tp-click-card { width: 100%; text-align: left; cursor: pointer; font: inherit; color: var(--tp-text); }
.tp-click-card:hover { transform: translateY(-1px); border-color: var(--tp-orange); background: color-mix(in srgb, var(--tp-orange) 7%, var(--tp-surface)); }
.tp-click-card h4 { color: var(--tp-text-strong); }
.tp-click-card p { color: var(--tp-text-muted); }
.tp-click-card > span { color: var(--tp-orange-dark); font-size: 11px; font-weight: 900; }
.tp-source-summary { display: grid; gap: 7px; margin-top: 10px; }

/* Resultado G-code */
.analysis-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.analysis-title-row h3 { margin: 7px 0 2px; }
.analysis-title-row p { margin: 0; color: var(--tp-text-muted); }
.analysis-total { min-width: 190px; padding: 13px; text-align: right; border: 1px solid color-mix(in srgb, var(--tp-orange) 35%, var(--tp-line)); border-radius: 13px; background: color-mix(in srgb, var(--tp-orange) 10%, var(--tp-surface)); }
.analysis-total small { display: block; color: var(--tp-text-muted); font-size: 9px; font-weight: 900; }
.analysis-total strong { display: block; margin-top: 3px; color: var(--tp-orange-dark); font-size: 24px; }
.metric-card small { display: block; margin-top: 2px; color: var(--tp-text-muted); font-size: 10px; }
.tp-analysis-details { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.tp-analysis-details span { padding: 5px 8px; border-radius: 999px; color: var(--tp-text-muted); background: var(--tp-surface-2); border: 1px solid var(--tp-line); font-size: 10px; }
.tp-last-gcode { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }

/* Toast próprio */
.tp-toast { display: flex; align-items: center; gap: 9px; border: 1px solid #4B433F; background: #171517 !important; color: #FFF8F0 !important; }
.tp-toast.success { border-color: #2B7655; }
.tp-toast.warning { border-color: #8D6228; }
.tp-toast.danger { border-color: #8B3C38; }
.tp-toast-dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: #FF770E; box-shadow: 0 0 0 4px rgba(255,119,14,.14); }
.tp-toast.success .tp-toast-dot { background: #55D493; }
.tp-toast.warning .tp-toast-dot { background: #FFBF5C; }
.tp-toast.danger .tp-toast-dot { background: #FF7A72; }

/* Conteúdo de alto contraste no modo claro sem branco puro */
html[data-theme="light"] .card,
html[data-theme="light"] .record-card,
html[data-theme="light"] .item-editor,
html[data-theme="light"] .step-section,
html[data-theme="light"] .table-wrap,
html[data-theme="light"] .modal-panel,
html[data-theme="light"] .product-card,
html[data-theme="light"] .portal-request { background: #FFF9F3 !important; }
html[data-theme="light"] table td { background: #FFF9F3 !important; color: #241C18 !important; }
html[data-theme="light"] table tbody tr:nth-child(even) td { background: #F7EEE5 !important; }
html[data-theme="light"] table th { background: #EBDDCE !important; color: #1C1511 !important; }
html[data-theme="light"] .modal-foot, html[data-theme="light"] .card-head, html[data-theme="light"] .step-head { background: #F7EEE5 !important; }

/* A proposta é um documento e precisa preservar contraste editorial */
.proposal-paper, .proposal-paper p, .proposal-paper span, .proposal-paper td,
.proposal-paper li, .proposal-paper label { color: #2B211B !important; }
.proposal-paper h1, .proposal-paper h2, .proposal-paper h3, .proposal-paper h4,
.proposal-paper strong { color: #17110E !important; }
.proposal-paper .proposal-accent, .proposal-paper .proposal-total strong { color: #A94100 !important; }

@media (max-width: 760px) {
  .tp-source-panel { grid-template-columns: 1fr; }
  .tp-tools-row { justify-content: flex-start; }
  .analysis-title-row { display: grid; }
  .analysis-total { width: 100%; text-align: left; }
  .technical-modal .modal-panel { max-height: 96vh; }
}


/* ============================================================
   Portal Tech Print v5.3 — polimento final de contraste e layout
   ============================================================ */

/* Resumo financeiro: layout mais equilibrado e legível */
.sticky-summary .card { overflow: hidden; }
.sticky-summary .card-body { display: grid; gap: 14px; }
.sticky-summary .kpi-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin-bottom: 2px;
  align-items: stretch;
}
.sticky-summary .kpi {
  min-width: 0;
  min-height: 132px;
  padding: 16px 15px !important;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
}
.sticky-summary .kpi.hero {
  grid-column: 1 / -1;
  min-height: 118px;
  padding: 18px 18px 16px !important;
}
.sticky-summary .kpi .label {
  display: block;
  margin: 0;
  line-height: 1.28;
  letter-spacing: .02em;
}
.sticky-summary .kpi .value {
  margin: 0;
  line-height: 1.02;
  letter-spacing: -.03em;
  word-break: break-word;
}
.sticky-summary .kpi .sub {
  display: block;
  line-height: 1.34;
}
.sticky-summary .kpi:not(.hero) .value { font-size: clamp(26px, 2.2vw, 34px) !important; }
.sticky-summary .kpi.hero .value { font-size: clamp(36px, 3.1vw, 44px) !important; }
.sticky-summary .summary-list { gap: 0 !important; margin-top: 0 !important; }
.sticky-summary .summary-row {
  align-items: flex-start;
  padding: 10px 0 !important;
}
.sticky-summary .summary-row span { flex: 1 1 auto; min-width: 0; line-height: 1.35; }
.sticky-summary .summary-row strong { flex: 0 0 auto; text-align: right; line-height: 1.35; }
.sticky-summary .summary-row.total {
  margin-top: 4px;
  padding: 12px 12px !important;
  border-top-width: 1px !important;
}

/* Modo escuro: nenhuma fonte clara em fundo claro nem escura em fundo escuro */
html[data-theme="dark"] .card,
html[data-theme="dark"] .card-body,
html[data-theme="dark"] .card-head,
html[data-theme="dark"] .step-body,
html[data-theme="dark"] .step-head,
html[data-theme="dark"] .modal-body,
html[data-theme="dark"] .modal-head,
html[data-theme="dark"] .modal-foot,
html[data-theme="dark"] .record-card,
html[data-theme="dark"] .item-editor,
html[data-theme="dark"] .portal-request,
html[data-theme="dark"] .summary-box,
html[data-theme="dark"] .choice-card,
html[data-theme="dark"] .action-tile,
html[data-theme="dark"] .palette-preset,
html[data-theme="dark"] .settings-rail,
html[data-theme="dark"] .viewer-stat,
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .analysis-result,
html[data-theme="dark"] .mw-result-card,
html[data-theme="dark"] .tech-file-card,
html[data-theme="dark"] .tp-request-source,
html[data-theme="dark"] .tp-owner-access {
  color: var(--tp-text) !important;
}
html[data-theme="dark"] p,
html[data-theme="dark"] td,
html[data-theme="dark"] li,
html[data-theme="dark"] small,
html[data-theme="dark"] .muted,
html[data-theme="dark"] .record-meta,
html[data-theme="dark"] .card-note,
html[data-theme="dark"] .summary-row span,
html[data-theme="dark"] .summary-line span,
html[data-theme="dark"] .product-body p,
html[data-theme="dark"] .portal-request p,
html[data-theme="dark"] .field small,
html[data-theme="dark"] .settings-rail-header span {
  color: #C7BAB0 !important;
}
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] strong,
html[data-theme="dark"] b,
html[data-theme="dark"] label,
html[data-theme="dark"] .record-title,
html[data-theme="dark"] .product-card h3,
html[data-theme="dark"] .portal-request h3,
html[data-theme="dark"] .summary-row strong,
html[data-theme="dark"] .summary-line strong,
html[data-theme="dark"] .viewer-stat strong,
html[data-theme="dark"] .metric-card strong {
  color: #FFF7EF !important;
}
html[data-theme="dark"] .badge:not(.success):not(.warning):not(.danger):not(.info) {
  background: #262429 !important;
  color: #F7EDE4 !important;
  border-color: #4B4444 !important;
}
html[data-theme="dark"] .btn.ghost,
html[data-theme="dark"] .btn.soft,
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .settings-tab,
html[data-theme="dark"] .command-item {
  color: #FFF7EF !important;
}
html[data-theme="dark"] .btn.ghost,
html[data-theme="dark"] .icon-btn { background: #232225 !important; border-color: #434042 !important; }
html[data-theme="dark"] .btn.soft { background: rgba(255,119,14,.12) !important; border-color: rgba(255,119,14,.34) !important; }
html[data-theme="dark"] .btn.secondary { background: #2C2625 !important; border-color: #514845 !important; color: #FFF7EF !important; }
html[data-theme="dark"] .command-item-icon,
html[data-theme="dark"] .command-item kbd,
html[data-theme="dark"] .tp-source-badge,
html[data-theme="dark"] .tp-owner-inline,
html[data-theme="dark"] .analysis-total strong,
html[data-theme="dark"] .product-price,
html[data-theme="dark"] .kpi:not(.hero) .value {
  color: #FF9C45 !important;
}
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] option,
html[data-theme="dark"] .search,
html[data-theme="dark"] .cell-input,
html[data-theme="dark"] .calc-table input,
html[data-theme="dark"] .calc-table select {
  background: #202024 !important;
  color: #FFF7EF !important;
  border-color: #484345 !important;
}
html[data-theme="dark"] .field.inline,
html[data-theme="dark"] .checkbox {
  background: #1D1D20 !important;
  color: #FFF7EF !important;
}
html[data-theme="dark"] .computed-box,
html[data-theme="dark"] .calc-table .computed,
html[data-theme="dark"] input[readonly] {
  background: #18281E !important;
  color: #E9F8EF !important;
  border-color: #3B5646 !important;
}
html[data-theme="dark"] .item-total-box {
  background: linear-gradient(160deg, #09090A, #141418) !important;
  color: #FFF7EF !important;
}
html[data-theme="dark"] .item-total-box .label { color: #CDBEB4 !important; }
html[data-theme="dark"] .summary-dark,
html[data-theme="dark"] .sticky-summary .card {
  background: linear-gradient(180deg, #131316, #121214) !important;
  border-color: #353237 !important;
}
html[data-theme="dark"] .sticky-summary .kpi:not(.hero) {
  background: linear-gradient(180deg, #1E1E22, #17171A) !important;
  border-color: #39363B !important;
}
html[data-theme="dark"] .sticky-summary .kpi.hero {
  background: linear-gradient(135deg, #1F3D63, #173252 56%, #102742) !important;
}
html[data-theme="dark"] .sticky-summary .kpi.hero .label,
html[data-theme="dark"] .sticky-summary .kpi.hero .sub {
  color: #D6E3F2 !important;
}
html[data-theme="dark"] .sticky-summary .kpi.hero .value { color: #FFF7EF !important; }
html[data-theme="dark"] .sticky-summary .summary-row.total {
  background: rgba(255,119,14,.10) !important;
  border-color: rgba(255,119,14,.28) !important;
}

/* Modo claro: sair do branco puro e harmonizar com a paleta */
html[data-theme="light"] .record-card,
html[data-theme="light"] .item-editor,
html[data-theme="light"] .card,
html[data-theme="light"] .modal-panel,
html[data-theme="light"] .product-card,
html[data-theme="light"] .portal-request,
html[data-theme="light"] .summary-box,
html[data-theme="light"] .choice-card,
html[data-theme="light"] .action-tile,
html[data-theme="light"] .palette-preset,
html[data-theme="light"] .settings-rail,
html[data-theme="light"] .tech-file-card,
html[data-theme="light"] .analysis-result,
html[data-theme="light"] .mw-result-card {
  background: #FFF9F3 !important;
}
html[data-theme="light"] .sticky-summary .kpi:not(.hero) {
  background: linear-gradient(180deg, #F8EFE5, #F4E7DA) !important;
  border-color: #D9CABC !important;
}
html[data-theme="light"] .sticky-summary .kpi .label,
html[data-theme="light"] .sticky-summary .kpi .sub { color: #6B594F !important; }
html[data-theme="light"] .sticky-summary .kpi:not(.hero) .value { color: #AF4D00 !important; }
html[data-theme="light"] .sticky-summary .kpi.hero {
  background: linear-gradient(135deg, #1E426A, #244E7B 65%, #315A89) !important;
}
html[data-theme="light"] .sticky-summary .kpi.hero .label,
html[data-theme="light"] .sticky-summary .kpi.hero .sub { color: #E2EDF7 !important; }
html[data-theme="light"] .sticky-summary .kpi.hero .value { color: #FFF9F2 !important; }

/* Tabelas e listas: melhor alinhamento e legibilidade geral */
.table-wrap table td,
.table-wrap table th { vertical-align: top; }
.record-card {
  align-items: start;
  gap: 14px !important;
}
.record-actions {
  gap: 8px !important;
  align-items: center !important;
}
.record-actions .btn,
.record-actions .icon-btn,
.record-actions select { flex-shrink: 0; }
.item-editor-main,
.item-editor-advanced {
  row-gap: 12px !important;
}
.item-editor textarea,
.field textarea { line-height: 1.4; }

/* Responsividade adicional do resumo */
@media (max-width: 560px) {
  .sticky-summary .kpi-grid { grid-template-columns: 1fr !important; }
  .sticky-summary .kpi.hero { grid-column: auto; }
  .sticky-summary .kpi { min-height: auto; }
}

/* ============================================================
   Portal Tech Print v5.3.2 — clareza, segurança e acessibilidade
   ============================================================ */

.public-store-home {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border: 0;
  border-radius: 12px;
  color: var(--tp-text-strong);
  background: transparent;
  font-weight: 900;
}
.public-store-home:hover { background: var(--tp-hover); }
.public-store-home img { width: 34px; height: 34px; object-fit: contain; }

body.public-storefront .sidebar,
body.public-storefront .mobile-menu-btn,
body.public-storefront .workspace-context,
body.public-storefront .command-trigger,
body.public-storefront .header-new-quote { display: none !important; }
body.public-storefront .app-content,
body.public-storefront.sidebar-collapsed .app-content { margin-left: 0 !important; }
body.public-storefront .workspace-bar { justify-content: space-between; padding-inline: max(18px, calc((100vw - 1420px) / 2)); }
body.public-storefront .public-store-home { display: inline-flex; }
body.public-storefront .workspace-actions { margin-left: auto; }

.action-menu { position: relative; }
.action-menu > summary { list-style: none; user-select: none; }
.action-menu > summary::-webkit-details-marker { display: none; }
.action-menu[open] > summary { border-color: var(--tp-orange); }
.action-menu-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 35;
  display: grid;
  gap: 7px;
  min-width: 230px;
  padding: 10px;
  border: 1px solid var(--tp-line);
  border-radius: 14px;
  background: var(--tp-surface);
  box-shadow: var(--tp-shadow);
}
.action-menu-panel .btn { width: 100%; justify-content: flex-start; }

.store-empty {
  grid-column: 1 / -1;
  display: grid;
  justify-items: start;
  gap: 10px;
  padding: clamp(28px, 5vw, 58px);
  border: 1px solid color-mix(in srgb, var(--tp-orange) 34%, var(--tp-line));
  border-radius: 22px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--tp-orange) 10%, var(--tp-surface)), var(--tp-surface));
}
.store-empty-kicker { color: var(--tp-orange-dark); font-size: 12px; font-weight: 950; letter-spacing: .1em; }
.store-empty h2 { margin: 0; font-size: clamp(24px, 4vw, 38px); }
.store-empty p { max-width: 720px; margin: 0 0 6px; font-size: 16px; }

.cost-mode-notice, .proposal-readiness { margin-bottom: 14px; }
.cost-mode-guided .is-zero-cost-row { display: none; }
.manual-price-field { position: relative; }
.manual-price-field input { border-color: color-mix(in srgb, var(--tp-orange) 42%, var(--tp-line)); }
.manual-price-field small { display:block; margin-top:6px; color:var(--tp-text-muted); line-height:1.4; }
.manual-price-note { display:grid; gap:3px; margin:12px 0; border-color:color-mix(in srgb, #22C98B 48%, var(--tp-line)); }
.manual-price-note strong { color:#8BF0C8; }
.manual-price-note span { color:var(--tp-text-muted); }
.proposal-watermark span { max-width: 90%; text-align: center; line-height: 1.05; }

:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--tp-orange) 75%, white);
  outline-offset: 3px;
}

@media (max-width: 760px) {
  body.public-storefront .workspace-bar { padding-inline: 12px; }
  .action-menu { width: 100%; }
  .action-menu > summary { width: 100%; justify-content: center; }
  .action-menu-panel { position: static; margin-top: 8px; }
  .store-empty { padding: 26px 20px; }
}

@media print {
  .proposal-readiness { display: none !important; }
}


/* ============================================================
   Portal Tech Print v5.1 — refinamento final de contraste e layout
   ============================================================ */

/* Resumo financeiro: evita cartões comprimidos por regras globais do dashboard */
.sticky-summary .kpi-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  margin-bottom: 16px !important;
}
.sticky-summary .kpi.hero {
  grid-column: 1 / -1 !important;
  min-width: 0;
  padding: 16px 18px !important;
}
.sticky-summary .kpi:not(.hero) {
  min-width: 0;
  padding: 14px !important;
  min-height: 126px;
  display: flex;
  flex-direction: column;
}
.sticky-summary .kpi .label {
  line-height: 1.25;
  min-height: 2.5em;
  overflow-wrap: anywhere;
}
.sticky-summary .kpi:not(.hero) .value {
  margin-top: 7px !important;
  font-size: clamp(17px, 1.6vw, 21px) !important;
  line-height: 1.08;
  overflow-wrap: anywhere;
}
.sticky-summary .kpi .sub {
  margin-top: auto;
  padding-top: 8px;
  line-height: 1.35;
}
.sticky-summary .summary-list { margin-top: 4px !important; }

/* Paleta de superfícies — nenhum branco puro na UI operacional */
html:not([data-theme="dark"]) .card,
html:not([data-theme="dark"]) .card-body,
html:not([data-theme="dark"]) .table-wrap,
html:not([data-theme="dark"]) .record-card,
html:not([data-theme="dark"]) .item-editor,
html:not([data-theme="dark"]) .step-section,
html:not([data-theme="dark"]) .kpi,
html:not([data-theme="dark"]) .kpi-card,
html:not([data-theme="dark"]) .product-card,
html:not([data-theme="dark"]) .role-card,
html:not([data-theme="dark"]) .portal-request,
html:not([data-theme="dark"]) .viewer-sidebar,
html:not([data-theme="dark"]) .modal-panel,
html:not([data-theme="dark"]) .settings-content,
html:not([data-theme="dark"]) .settings-pane {
  background-color: var(--tp-surface) !important;
  color: var(--tp-text) !important;
}

/* Tabelas usam contraste explícito nos dois temas */
table tbody td { color: var(--tp-text) !important; border-color: var(--tp-line) !important; }
table tbody td strong, table tbody td b { color: var(--tp-text-strong) !important; }
table tbody tr:nth-child(even) td { background: var(--tp-surface-2) !important; }
table tbody tr:nth-child(odd) td { background: var(--tp-surface) !important; }
table tbody tr:hover td { background: color-mix(in srgb, var(--tp-orange) 8%, var(--tp-surface)) !important; }
table thead th {
  background: var(--tp-surface-strong) !important;
  color: #FFF7EF !important;
  border-color: color-mix(in srgb, #FFF7EF 18%, transparent) !important;
}

/* Botões claros e barras de ações não herdam texto branco indevidamente */
.btn:not(.primary):not(.secondary), .icon-btn, .subtab:not(.active), .action-tile,
.palette-preset, .choice-card, .search, .toolbar {
  color: var(--tp-text-strong) !important;
}
.btn.primary { background: linear-gradient(135deg, #FF770E, #FF9640) !important; color: #17100B !important; border-color: #FF9E4C !important; }
.btn.primary:hover { background: linear-gradient(135deg, #FF8728, #FFA457) !important; }
html[data-theme="dark"] .btn.secondary {
  color: #FFF7EF !important;
  background: #2B292C !important;
  border-color: #4B4541 !important;
}
html:not([data-theme="dark"]) .btn.secondary {
  color: #FFF7EF !important;
  background: #201B18 !important;
  border-color: #201B18 !important;
}

/* Campos e texto auxiliar */
.field label, .field legend, .settings-pane label { color: var(--tp-text-strong) !important; }
.field small, .card-note, .record-meta, .muted, .help-text, .page-head p { color: var(--tp-text-muted) !important; }
input, select, textarea, .cell-input, .search { color: var(--tp-text-strong) !important; }

/* Cards de aviso possuem texto adequado à cor de fundo */
.notice { color: var(--tp-warning) !important; background: var(--tp-warning-soft) !important; border-color: color-mix(in srgb, var(--tp-warning) 34%, var(--tp-line)) !important; }
.notice.success { color: var(--tp-success) !important; background: var(--tp-success-soft) !important; border-color: color-mix(in srgb, var(--tp-success) 34%, var(--tp-line)) !important; }
.notice.danger { color: var(--tp-danger) !important; background: var(--tp-danger-soft) !important; border-color: color-mix(in srgb, var(--tp-danger) 34%, var(--tp-line)) !important; }

/* Catálogo e clientes: textos nunca somem em superfícies claras/escuras */
.record-card, .product-card, .portal-request, .item-editor { color: var(--tp-text) !important; }
.record-card .record-title, .product-card h3, .portal-request h3, .item-editor .item-sku { color: var(--tp-text-strong) !important; }
.record-card .record-meta, .product-card p, .portal-request p { color: var(--tp-text-muted) !important; }

/* Cards financeiros especiais */
.sticky-summary .kpi.hero {
  background: linear-gradient(135deg, #171313 0%, #302016 58%, #4A260D 100%) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 157, 88, .15);
}
.sticky-summary .kpi.hero .label, .sticky-summary .kpi.hero .sub { color: #DCCFC5 !important; }
.sticky-summary .kpi.hero .value { color: #FF8A32 !important; }
html[data-theme="dark"] .sticky-summary .kpi:not(.hero) { background: #1D1B1D !important; }
html:not([data-theme="dark"]) .sticky-summary .kpi:not(.hero) { background: #F7EEE5 !important; }

/* Área de acesso/implantação */
.role-card, .cloud-status, .tp-owner-access { color: var(--tp-text) !important; }
.role-card strong, .tp-owner-access strong { color: var(--tp-text-strong) !important; }
.role-card p, .cloud-status p, .tp-owner-access span { color: var(--tp-text-muted) !important; }

/* Responsividade do resumo */
@media (max-width: 1380px) {
  .sticky-summary .kpi:not(.hero) .value { font-size: 18px !important; }
}
@media (max-width: 1120px) {
  .sticky-summary .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .sticky-summary .kpi:not(.hero) { min-height: 112px; }
}
@media (max-width: 520px) {
  .sticky-summary .kpi-grid { grid-template-columns: 1fr !important; }
  .sticky-summary .kpi.hero { grid-column: 1 !important; }
  .sticky-summary .kpi:not(.hero) { min-height: auto; }
  .sticky-summary .kpi .label { min-height: auto; }
  .sticky-summary .kpi .sub { margin-top: 7px; padding-top: 0; }
}

/* Loja pública, pagamentos Pix e atendimento — v5.5.0 */
.store-public-note {
  width: fit-content;
  max-width: 680px;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 16px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  color: #EADFD7;
  background: rgba(0,0,0,.22);
  font-size: 12px;
  line-height: 1.45;
}
.store-public-note > span:first-child { color: #55E3A1; font-weight: 950; }
.pix-inline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid color-mix(in srgb, #20B779 45%, var(--line));
  border-radius: 14px;
  background: color-mix(in srgb, #20B779 10%, var(--panel));
}
.pix-inline > div { display: grid; gap: 2px; }
.pix-inline span { color: #20B779; font-size: 10px; font-weight: 950; letter-spacing: .12em; }
.pix-inline strong { color: var(--ink); font-size: 21px; }
.pix-inline small { color: var(--muted); }
.pix-waiting { margin-top: 11px; color: var(--muted); font-size: 11px; }
.pix-payment-panel { overflow: hidden; }
.pix-payment-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px;
  border-radius: 17px;
  color: #F5FFFA;
  background: linear-gradient(135deg, #123E32, #0A241D);
}
.pix-payment-card > div:last-child { display: grid; gap: 2px; }
.pix-payment-card span { color: #9EE9CB; font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.pix-payment-card strong { font-size: clamp(27px, 5vw, 38px); line-height: 1; }
.pix-payment-card small { color: #B7D9CB; }
.pix-icon { display: grid; place-items: center; width: 54px; height: 54px; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.2); border-radius: 16px; color: #68E4B1; background: rgba(255,255,255,.08); font-size: 13px; font-weight: 950; }
.pix-key-box { display: grid; gap: 6px; margin: 14px 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel-alt); }
.pix-key-box span { color: var(--muted); font-size: 11px; font-weight: 850; }
.pix-key-box strong { overflow-wrap: anywhere; color: var(--ink); font-size: 22px; letter-spacing: .01em; }
.pix-key-box small { color: var(--muted); line-height: 1.45; }
.pix-checkout-grid { display: grid; grid-template-columns: minmax(190px, .72fr) minmax(0, 1.28fr); gap: 16px; margin: 16px 0; align-items: stretch; }
.pix-qr-shell { display: grid; place-items: center; align-content: center; gap: 10px; min-height: 240px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; color: var(--muted); background: #fff; text-align: center; }
.pix-qr-shell small { max-width: 210px; color: #4b5563; line-height: 1.4; }
.pix-qr { width: min(100%, 218px); aspect-ratio: 1; display: grid; place-items: center; }
.pix-qr svg { display: block; width: 100%; height: auto; }
.pix-payment-details { display: grid; align-content: start; gap: 12px; }
.pix-payment-details .pix-key-box { margin: 0; }
.pix-copy-box { display: grid; gap: 6px; }
.pix-copy-box label { color: var(--muted); font-size: 11px; font-weight: 850; }
.pix-copy-box textarea { min-height: 92px; resize: vertical; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; line-height: 1.45; }
.pix-declare-btn { width: 100%; margin-top: 14px; min-height: 48px; }
.payment-state { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel-alt); }
.payment-state > div:first-child { display: grid; gap: 3px; }
.payment-state span { color: var(--ink); font-size: 12px; font-weight: 900; }
.payment-state small { color: var(--muted); line-height: 1.45; }
.payment-state.declared { border-color: color-mix(in srgb, #F59E0B 52%, var(--line)); background: color-mix(in srgb, #F59E0B 9%, var(--panel)); }
.payment-state.declared span { color: #D98900; }
.payment-state.confirmed { border-color: color-mix(in srgb, #20B779 52%, var(--line)); background: color-mix(in srgb, #20B779 10%, var(--panel)); }
.payment-state.confirmed span { color: #20B779; }
.pix-inline.declared { border-color: color-mix(in srgb, #F59E0B 52%, var(--line)); background: color-mix(in srgb, #F59E0B 9%, var(--panel)); }
.pix-inline.declared span { color: #D98900; }
.pix-inline.confirmed span { color: #20B779; }

@media (max-width: 560px) {
  .pix-inline { align-items: stretch; flex-direction: column; }
  .pix-inline .btn { width: 100%; }
  .pix-checkout-grid { grid-template-columns: 1fr; }
  .payment-state { align-items: stretch; flex-direction: column; }
  .pix-payment-panel .modal-foot { flex-wrap: wrap; }
  .pix-payment-panel .modal-foot .btn { flex: 1 1 42%; }
}


/* ============================================================
   Portal Tech Print v5.3 — revisão final profissional
   ============================================================ */

/* O resumo financeiro possui um grid próprio; não herda o grid de KPIs do dashboard. */
.quote-grid .sticky-summary .kpi-grid,
.sticky-summary .kpi-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  width: 100%;
  margin: 0 0 14px !important;
}
.sticky-summary .kpi.hero {
  grid-column: 1 / -1 !important;
  min-height: 116px !important;
  padding: 17px 18px !important;
}
.sticky-summary .kpi:not(.hero) {
  min-width: 0 !important;
  min-height: 124px !important;
  padding: 14px !important;
}
.sticky-summary .kpi .label {
  min-height: 2.45em;
  line-height: 1.22 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}
.sticky-summary .kpi:not(.hero) .value {
  font-size: clamp(19px, 1.65vw, 23px) !important;
  line-height: 1.05 !important;
  white-space: normal;
  overflow-wrap: anywhere;
}
.sticky-summary .kpi.hero .value {
  font-size: clamp(31px, 2.6vw, 38px) !important;
  line-height: 1 !important;
}
.sticky-summary .kpi .sub { margin-top: auto; padding-top: 7px; line-height: 1.3 !important; }
.sticky-summary .kpi .value.danger-text { color: var(--tp-danger) !important; }
.sticky-summary .kpi .value.success-text { color: var(--tp-success) !important; }

/* Tech Print: preto, grafite, marrom quente e laranja; sem branco puro na aplicação. */
html:not([data-theme="dark"]) {
  --tp-bg: #F0EAE3;
  --tp-surface: #FFF9F2;
  --tp-surface-2: #F6ECE2;
  --tp-surface-3: #E8DACC;
  --tp-input: #FFFDF8;
  --tp-line: #D7C7B9;
  --tp-text: #281E19;
  --tp-text-strong: #140F0C;
  --tp-text-muted: #6B5B51;
}
html[data-theme="dark"] {
  --tp-bg: #09090A;
  --tp-surface: #161617;
  --tp-surface-2: #1E1E20;
  --tp-surface-3: #2B292B;
  --tp-input: #222225;
  --tp-line: #413B38;
  --tp-text: #E8DDD4;
  --tp-text-strong: #FFF3E8;
  --tp-text-muted: #C0B0A5;
}
html:not([data-theme="dark"]) .sticky-summary .kpi.hero,
html[data-theme="dark"] .sticky-summary .kpi.hero {
  background: linear-gradient(135deg, #171313 0%, #2A1A12 56%, #4B260D 100%) !important;
  border: 1px solid rgba(255, 138, 50, .18) !important;
  box-shadow: 0 14px 30px rgba(18, 11, 7, .16) !important;
}
.sticky-summary .kpi.hero .label,
.sticky-summary .kpi.hero .sub { color: #DCCEC3 !important; }
.sticky-summary .kpi.hero .value { color: #FF8930 !important; }
html:not([data-theme="dark"]) .sticky-summary .kpi:not(.hero) {
  background: linear-gradient(180deg, #F8EEE4, #F2E4D7) !important;
  border-color: #D8C7B7 !important;
}
html[data-theme="dark"] .sticky-summary .kpi:not(.hero) {
  background: linear-gradient(180deg, #201E20, #19191B) !important;
  border-color: #403A39 !important;
}

/* Contraste explícito por superfície. */
.card, .card-body, .modal-panel, .record-card, .item-editor, .product-card, .portal-request,
.role-card, .viewer-sidebar, .settings-content, .settings-pane, .tech-file-card, .analysis-result,
.mw-result-card, .summary-box, .choice-card, .action-tile, .palette-preset {
  color: var(--tp-text) !important;
  border-color: var(--tp-line) !important;
}
h1, h2, h3, h4, h5, h6, strong, b, .record-title, .item-sku, .product-card h3,
.portal-request h3, .role-card h3, .summary-row strong, .viewer-stat strong {
  color: var(--tp-text-strong) !important;
}
p, li, td, small, .muted, .card-note, .record-meta, .field small, .product-card p,
.portal-request p, .summary-row span, .summary-line span {
  color: var(--tp-text-muted) !important;
}
.field label, .field legend { color: var(--tp-text-strong) !important; }
input, select, textarea, option, .cell-input, .search {
  background: var(--tp-input) !important;
  color: var(--tp-text-strong) !important;
  border-color: var(--tp-line) !important;
}
input::placeholder, textarea::placeholder { color: var(--tp-text-muted) !important; opacity: .86 !important; }

/* Tabelas: cores explícitas evitam heranças conflitantes. */
table thead th { background: #211B18 !important; color: #FFF1E5 !important; border-color: #4A403A !important; }
table tbody tr:nth-child(odd) td { background: var(--tp-surface) !important; color: var(--tp-text) !important; }
table tbody tr:nth-child(even) td { background: var(--tp-surface-2) !important; color: var(--tp-text) !important; }
table tbody tr:hover td { background: color-mix(in srgb, #FF770E 9%, var(--tp-surface)) !important; }
table td strong, table td b { color: var(--tp-text-strong) !important; }

/* Estados, botões e badges. */
.btn.primary { background: linear-gradient(135deg, #FF770E, #FF9B47) !important; color: #17100A !important; border-color: #FFA45A !important; }
.btn.primary:hover { background: linear-gradient(135deg, #FF8728, #FFA95F) !important; }
.btn.secondary { background: #241F1C !important; color: #FFF2E8 !important; border-color: #3C342F !important; }
.btn.ghost, .btn.soft, .icon-btn, .subtab:not(.active) { color: var(--tp-text-strong) !important; }
.badge:not(.success):not(.warning):not(.danger):not(.info) { color: var(--tp-text-strong) !important; }
.danger-text { color: var(--tp-danger) !important; }
.success-text { color: var(--tp-success) !important; }

/* Proprietários claramente identificados, sem confundir perfil com quantidade de contas. */
.tp-owner-access strong, .tp-owner-inline { color: var(--tp-orange-dark) !important; }
.tp-owner-access { background: color-mix(in srgb, var(--tp-orange) 6%, var(--tp-surface)) !important; }

/* Fluxos MakerWorld e G-code com áreas de ação visualmente claras. */
.mw-search-row, .gcode-dropzone, .tp-source-panel {
  border-color: color-mix(in srgb, var(--tp-orange) 34%, var(--tp-line)) !important;
}
.gcode-dropzone { background: color-mix(in srgb, var(--tp-orange) 4%, var(--tp-surface)) !important; }
.gcode-dropzone.dragging { background: color-mix(in srgb, var(--tp-orange) 12%, var(--tp-surface)) !important; }

/* Documento de proposta permanece editorial e imprimível em fundo claro. */
.proposal-paper { background: #FFFFFF !important; }
.proposal-paper, .proposal-paper p, .proposal-paper span, .proposal-paper td, .proposal-paper li, .proposal-paper label { color: #2B211B !important; }
.proposal-paper h1, .proposal-paper h2, .proposal-paper h3, .proposal-paper h4, .proposal-paper strong { color: #17110E !important; }

@media (max-width: 560px) {
  .sticky-summary .kpi-grid { grid-template-columns: 1fr !important; }
  .sticky-summary .kpi.hero { grid-column: 1 !important; }
  .sticky-summary .kpi, .sticky-summary .kpi:not(.hero) { min-height: auto !important; }
  .sticky-summary .kpi .label { min-height: 0; }
  .sticky-summary .kpi .sub { margin-top: 6px; padding-top: 0; }
}

/* ============================================================
   Portal Tech Print v5.3.3 — correção definitiva do tema escuro
   ============================================================ */
html[data-theme="dark"] body,
html[data-theme="dark"] .app-content,
html[data-theme="dark"] .main {
  background-color: #09090A !important;
  color: #F2EAE3 !important;
}
html[data-theme="dark"] :is(
  .card, .card-body, .record-card, .item-editor, .step-section, .step-body,
  .table-wrap, .product-card, .portal-request, .role-card, .cloud-status,
  .settings-content, .settings-pane, .settings-rail, .choice-card, .action-tile,
  .palette-preset, .summary-box, .control-note, .viewer-sidebar, .tech-file-card,
  .analysis-result, .mw-result-card, .metric-card, .logo-uploader
) {
  background-color: #171719 !important;
  color: #EEE6DF !important;
  border-color: #3E3938 !important;
}
html[data-theme="dark"] :is(.card-head, .step-head, .modal-head, .modal-foot, .item-editor-head, .settings-rail-header) {
  background: linear-gradient(180deg, #202023, #19191B) !important;
  color: #FFF7F0 !important;
  border-color: #3E3938 !important;
}
html[data-theme="dark"] table,
html[data-theme="dark"] table tbody,
html[data-theme="dark"] table tbody tr { background: #171719 !important; }
html[data-theme="dark"] table tbody tr:nth-child(odd) > td {
  background: #171719 !important;
  color: #E8DDD4 !important;
  border-color: #3E3938 !important;
}
html[data-theme="dark"] table tbody tr:nth-child(even) > td {
  background: #1E1E21 !important;
  color: #E8DDD4 !important;
  border-color: #3E3938 !important;
}
html[data-theme="dark"] table tbody tr:hover > td { background: #29221E !important; }
html[data-theme="dark"] table .table-empty {
  background: #171719 !important;
  color: #BFAFA4 !important;
}
html[data-theme="dark"] :is(.brand-mark, .brand-preview-logo, .logo-preview) {
  background: #2A2829 !important;
  border-color: #474142 !important;
}
html[data-theme="dark"] .brand-image { color-scheme: dark; }
.purchase-mode-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:7px; }
.purchase-mode-card { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr) 24px; align-items:center; gap:12px; min-height:112px; padding:15px; overflow:hidden; cursor:pointer; border:1px solid var(--tp-line); border-radius:15px; color:var(--tp-text); background:linear-gradient(145deg,var(--tp-surface),var(--tp-surface-2)); transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease; }
.purchase-mode-card:hover { border-color:color-mix(in srgb,var(--tp-orange) 58%,var(--tp-line)); background:color-mix(in srgb,var(--tp-orange) 5%,var(--tp-surface)); transform:translateY(-1px); }
.purchase-mode-card:focus-within { outline:3px solid color-mix(in srgb,var(--tp-orange) 28%,transparent); outline-offset:2px; }
.purchase-mode-input { position:absolute !important; width:1px !important; height:1px !important; margin:0 !important; padding:0 !important; opacity:0; pointer-events:none; }
.purchase-mode-icon { width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--tp-line); border-radius:12px; color:var(--tp-text-strong); background:var(--tp-surface-3); }
.purchase-mode-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.purchase-mode-copy { min-width:0; }
.purchase-mode-copy strong { display:block; padding-right:2px; color:var(--tp-text-strong); font-size:15px; line-height:1.25; }
.purchase-mode-copy small { display:block; margin-top:6px; color:var(--tp-text-muted); font-size:13px; line-height:1.42; }
.purchase-mode-check { width:22px; height:22px; display:grid; place-items:center; border:1px solid var(--tp-line); border-radius:50%; color:transparent; background:var(--tp-surface); font-size:14px; font-weight:900; }
.purchase-mode-card:has(.purchase-mode-input:checked) { border-color:var(--tp-orange); background:linear-gradient(145deg,color-mix(in srgb,var(--tp-orange) 12%,var(--tp-surface)),color-mix(in srgb,var(--tp-orange) 5%,var(--tp-surface-2))); box-shadow:0 0 0 2px color-mix(in srgb,var(--tp-orange) 22%,transparent),0 12px 26px color-mix(in srgb,var(--tp-orange) 10%,transparent); }
.purchase-mode-card:has(.purchase-mode-input:checked) .purchase-mode-icon { color:var(--tp-orange-dark); border-color:color-mix(in srgb,var(--tp-orange) 55%,var(--tp-line)); background:color-mix(in srgb,var(--tp-orange) 15%,var(--tp-surface)); }
.purchase-mode-card:has(.purchase-mode-input:checked) .purchase-mode-check { color:var(--tp-on-orange); border-color:var(--tp-orange); background:var(--tp-orange); }
.purchase-mode-hint { margin-top:10px; padding:10px 12px; border-left:3px solid var(--tp-orange); border-radius:0 10px 10px 0; color:var(--tp-text-muted); background:color-mix(in srgb,var(--tp-orange) 7%,var(--tp-surface-2)); font-size:13px; line-height:1.45; }
.purchase-mode-hint strong { color:var(--tp-text-strong); }
.upload-drop-field { padding:12px; border:1px dashed var(--tp-line); border-radius:12px; background:color-mix(in srgb,var(--tp-surface-2) 74%,transparent); transition:border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.upload-drop-field.drop-active { border-color:var(--tp-orange); background:color-mix(in srgb,var(--tp-orange) 10%,var(--tp-surface)); box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--tp-orange) 20%,transparent); outline:none; }
.upload-drop-field .btn { width:100%; margin:6px 0; }
.upload-drop-field .drop-help { opacity:.82; }
@keyframes modalGuardPulse { 0%,100%{box-shadow:var(--tp-shadow)} 45%{box-shadow:0 0 0 3px color-mix(in srgb,var(--tp-orange) 38%,transparent),var(--tp-shadow)} }
.modal-panel.modal-needs-attention { animation:modalGuardPulse .4s ease; }
.purchase-summary { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 17px; border: 1px solid var(--tp-line); border-radius: 15px; background: var(--tp-surface-2); }
.purchase-summary h3 { margin: 4px 0; }
.purchase-summary > strong { color: var(--tp-orange); font-size: 22px; white-space: nowrap; }
.purchase-summary > strong small { color: var(--tp-text-muted); font-size: 12px; }
.purchase-total { display: block; min-height: 44px; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--tp-orange) 45%, var(--tp-line)); border-radius: 10px; color: var(--tp-text-strong); background: color-mix(in srgb, var(--tp-orange) 8%, var(--tp-surface)); font-size: 20px; font-weight: 900; }
.portal-orders-card { margin-bottom: 16px; }
.portal-orders-card .card-head p { margin: 3px 0 0; }
.order-card + .order-card { margin-top: 10px; }
html[data-theme="dark"] :is(.purchase-summary,.purchase-total) { background-color: #1E1E21 !important; color: #F4ECE5 !important; border-color: #4A4341 !important; }
html[data-theme="dark"] :is(.portal-orders-card,.compact-help) { background-color: #171719 !important; color: #EEE6DF !important; }
html[data-theme="dark"] .pix-qr-shell { background: #FFFFFF !important; color: #403A36 !important; }
@media (max-width: 760px) { .purchase-mode-choices { grid-template-columns:1fr; } .purchase-mode-card { min-height:102px; } .purchase-summary { display:grid; } .purchase-summary > strong { white-space:normal; } }
.owner-signature { column-gap: 10px !important; row-gap: 8px !important; }
.owner-name + .owner-name { margin-left: 2px; }

/* Proteção visual v5.5.0: impede imagens de marca de usar o tamanho original e quebrar a loja. */
html, body { max-width: 100%; overflow-x: hidden; }
.app-content, .workspace-bar, .main, .view, .store-hero, .store-hero-grid { min-width: 0; max-width: 100%; }
body:not(.public-storefront) .public-store-home { display: none !important; }
body.public-storefront .public-store-home { display: inline-flex !important; flex: 0 0 auto; width: auto; max-width: 180px; }
.public-store-home img.brand-image {
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  object-fit: contain !important;
}
.store-hero-logo { box-sizing: border-box; width: 210px !important; height: 210px !important; max-width: 100%; overflow: hidden; }
.store-hero-logo img.brand-image { display: block !important; width: 100% !important; height: 100% !important; max-width: 154px !important; max-height: 154px !important; object-fit: contain !important; }

/* Proteção visual v5.5.0: elimina faixas brancas nas tabelas da precificação escura. */
html[data-theme="dark"] .pricing-step,
html[data-theme="dark"] .pricing-step .step-body,
html[data-theme="dark"] .pricing-step .table-wrap,
html[data-theme="dark"] .pricing-step .calc-table,
html[data-theme="dark"] .pricing-step .calc-table tbody,
html[data-theme="dark"] .pricing-step .calc-table tbody tr,
html[data-theme="dark"] .pricing-step .calc-table tbody td {
  color: #F2EAE3 !important;
  background: #171719 !important;
  border-color: #343438 !important;
}
html[data-theme="dark"] .pricing-step .calc-table tbody tr:nth-child(even) td { background: #1D1D20 !important; }
html[data-theme="dark"] .pricing-step .calc-table input,
html[data-theme="dark"] .pricing-step .calc-table select,
html[data-theme="dark"] .pricing-step .calc-table textarea {
  color: #FFF7EF !important;
  background: #242426 !important;
  border-color: #484345 !important;
}
html[data-theme="dark"] .pricing-step .calc-table .computed {
  color: #E9F8EF !important;
  background: #18281E !important;
}
html[data-theme="dark"] .pricing-step .control-note,
html[data-theme="dark"] .cost-mode-notice {
  color: #CFC2B8 !important;
  background: #202023 !important;
  border-color: #3E3939 !important;
}

/* Login dedicado: sem menu administrativo ou painéis técnicos. */
body.auth-screen { overflow-x: hidden; background: #080809 !important; }
body.auth-screen .topbar.sidebar,
body.auth-screen .workspace-bar,
body.auth-screen .sidebar-backdrop { display: none !important; }
body.auth-screen .app-content,
body.auth-screen.sidebar-collapsed .app-content,
body.auth-screen.public-storefront .app-content { margin-left: 0 !important; }
body.auth-screen .main {
  width: 100% !important;
  min-height: 100vh;
  margin: 0 !important;
  background: #080809 !important;
}
body.auth-screen #view-access { min-height: 100vh; }
.auth-page {
  position: relative;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: clamp(70px, 8vw, 110px) clamp(20px, 5vw, 72px) 42px;
  overflow: hidden;
  color: #F8F2EC;
  background:
    radial-gradient(circle at 12% 16%, rgba(255,119,14,.17), transparent 28%),
    radial-gradient(circle at 88% 86%, rgba(255,119,14,.08), transparent 25%),
    linear-gradient(135deg, #080809 0%, #111113 55%, #160D08 100%);
}
.auth-page::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to bottom, black, transparent 82%);
}
.auth-back {
  position: absolute;
  z-index: 2;
  top: 24px;
  left: 28px;
  min-height: 42px;
  padding: 9px 13px;
  border: 1px solid #393536;
  border-radius: 12px;
  color: #E9DDD4;
  background: rgba(25,25,27,.82);
  font-weight: 800;
}
.auth-back:hover { color: #FFF; border-color: rgba(255,119,14,.65); background: #211A17; }
.auth-layout {
  position: relative;
  z-index: 1;
  width: min(1060px, 100%);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(350px, 430px);
  align-items: center;
  gap: clamp(46px, 8vw, 110px);
}
.auth-intro { max-width: 540px; }
.auth-brand-logo { width: 78px; height: 98px; object-fit: contain; margin-bottom: 22px; filter: drop-shadow(0 16px 28px rgba(255,119,14,.16)); }
.auth-kicker, .auth-card-kicker {
  display: block;
  color: #FF8A32 !important;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.auth-intro h1 { margin: 14px 0 18px; color: #FFF8F2 !important; font-size: clamp(42px, 6vw, 72px); line-height: .98; letter-spacing: -.055em; }
.auth-intro h1 em { color: #FF7A16; font-style: normal; }
.auth-intro > p { max-width: 520px; margin: 0; color: #BDAFA5 !important; font-size: clamp(16px, 1.8vw, 19px); }
.auth-trust { display: flex; align-items: center; gap: 8px; margin-top: 30px; color: #CFC2B8; font-size: 12px; font-weight: 750; }
.auth-trust span { color: #43D592; text-shadow: 0 0 14px rgba(67,213,146,.6); }
.auth-card {
  padding: clamp(26px, 4vw, 38px);
  border: 1px solid #3D3735;
  border-radius: 24px;
  background: rgba(24,24,26,.94);
  box-shadow: 0 30px 90px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter: blur(16px);
}
.auth-card-logo { display: none; width: 56px; height: 64px; margin-bottom: 18px; }
.auth-card-logo img { width: 100%; height: 100%; object-fit: contain; }
.auth-card h2 { margin: 8px 0 6px; color: #FFF8F2 !important; font-size: clamp(27px, 3vw, 34px); letter-spacing: -.035em; }
.auth-card > p { margin: 0 0 24px; color: #B9ABA1 !important; }
.auth-form { display: grid; gap: 15px; }
.auth-form .field label { color: #EDE2DA !important; font-size: 12px; }
.auth-form .field input {
  min-height: 50px;
  border-color: #494244 !important;
  border-radius: 12px;
  color: #FFF8F2 !important;
  background: #222225 !important;
}
.auth-form .field input:focus { border-color: #FF770E !important; background: #252326 !important; }
.auth-submit { min-height: 50px; margin-top: 3px; justify-content: space-between; padding-inline: 18px !important; }
.auth-signup { margin-top: 20px; padding-top: 17px; border-top: 1px solid #383435; }
.auth-signup summary { color: #CBBDB3; cursor: pointer; font-size: 12px; font-weight: 800; text-align: center; }
.auth-signup[open] summary { margin-bottom: 17px; color: #FF9B53; }
.auth-form-secondary { padding: 17px; border: 1px solid #3A3637; border-radius: 15px; background: #131315; }
.auth-form-secondary small { color: #A99B92 !important; line-height: 1.4; }
.auth-footer { display: flex; justify-content: space-between; margin-top: 22px; color: #847971; font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.auth-footer span { color: #FF8A32; }

/* A proposta impressa é a única superfície deliberadamente branca. */
html[data-theme="dark"] .proposal-paper,
html[data-theme="dark"] .proposal-paper table,
html[data-theme="dark"] .proposal-paper table tbody,
html[data-theme="dark"] .proposal-paper table tbody tr,
html[data-theme="dark"] .proposal-paper table tbody td { background: #FFFFFF !important; }

@media (max-width: 820px) {
  .auth-layout { grid-template-columns: 1fr; width: min(470px, 100%); gap: 26px; }
  .auth-intro { text-align: center; }
  .auth-brand-logo { display: none; }
  .auth-intro h1 { font-size: clamp(34px, 10vw, 48px); }
  .auth-intro > p, .auth-trust { display: none; }
  .auth-card-logo { display: block; }
}
@media (max-width: 520px) {
  .auth-page { align-items: start; padding: 82px 14px 24px; }
  .auth-back { top: 18px; left: 14px; }
  .auth-card { padding: 24px 19px; border-radius: 20px; }
  .auth-intro h1 { margin: 8px 0 0; }
}

/* ============================================================
   Portal Tech Print v5.5.0 — camada final de experiência
   Loja pública, portal simples, atendimento e tema consistente
   ============================================================ */
[hidden] { display: none !important; }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--tp-orange) 72%, #FFF) !important;
  outline-offset: 3px !important;
}

/* A logo nunca é recortada, girada ou esticada. */
.brand-mark,
.brand-preview-logo,
.logo-preview,
.auth-brand-logo,
.store-hero-logo {
  transform: none !important;
}
.brand-mark img,
.brand-preview-logo img,
.logo-preview img,
.auth-brand-logo,
.store-hero-logo img,
.public-store-home img {
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
  rotate: 0deg !important;
}

/* Barra de ações simples no catálogo público. */
.store-utility-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 58px;
  margin-bottom: 16px;
  padding: 9px 10px 9px 16px;
  border: 1px solid var(--tp-line);
  border-radius: 16px;
  color: var(--tp-text);
  background: color-mix(in srgb, var(--tp-surface) 94%, transparent);
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}
.store-utility-bar > div:first-child { display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 800; }
.store-utility-bar .status-light { position: static; width: 9px; height: 9px; border-radius: 999px; background: var(--tp-success); box-shadow: 0 0 0 4px color-mix(in srgb, var(--tp-success) 16%, transparent); }
.store-utility-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.store-utility-actions .btn { min-height: 40px; }

.store-hero {
  isolation: isolate;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--tp-orange) 18%, #3A2820) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.24) !important;
}
.store-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -8%;
  bottom: -65%;
  width: 420px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--brand-accent-rgb,255,119,14),.16), transparent 66%);
  pointer-events: none;
}
.product-card { overflow: hidden; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.product-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--tp-orange) 46%, var(--tp-line)) !important; box-shadow: 0 22px 48px rgba(0,0,0,.19); }
.product-card .product-body { display: flex; min-height: 265px; flex-direction: column; }
.product-card .product-actions { margin-top: auto; padding-top: 16px; }
.product-card .product-actions .btn.primary { min-height: 46px; }
.product-price { color: var(--tp-orange) !important; }

/* Portal do cliente guiado por próximo passo. */
.portal-welcome {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin: 2px 0 14px;
  padding: 22px 24px;
  border: 1px solid var(--tp-line);
  border-radius: var(--radius,18px);
  background: linear-gradient(135deg, var(--tp-surface), color-mix(in srgb, var(--tp-orange) 5%, var(--tp-surface)));
}
.portal-welcome h2 { margin: 4px 0 3px; font-size: clamp(25px,3vw,36px); letter-spacing: -.035em; }
.portal-welcome p { margin: 0; }
.portal-next-step {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 17px;
  margin-bottom: 14px;
  padding: 18px 20px;
  border: 1px solid color-mix(in srgb, var(--tp-orange) 34%, var(--tp-line));
  border-radius: var(--radius,18px);
  background: linear-gradient(105deg, color-mix(in srgb, var(--tp-orange) 9%, var(--tp-surface)), var(--tp-surface));
  box-shadow: 0 14px 34px rgba(var(--brand-accent-rgb,255,119,14),.08);
}
.portal-next-number { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; color: var(--tp-on-orange); background: var(--tp-orange); font-size: 20px; font-weight: 950; }
.portal-next-step span { color: var(--tp-orange); font-size: 10px; font-weight: 950; letter-spacing: .13em; }
.portal-next-step h3 { margin: 3px 0; font-size: 18px; }
.portal-next-step p { margin: 0; }
.portal-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
.portal-summary-grid > div { display: grid; gap: 3px; min-width: 0; padding: 15px 17px; border: 1px solid var(--tp-line); border-radius: 15px; background: var(--tp-surface); }
.portal-summary-grid span { color: var(--tp-text-muted); font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.portal-summary-grid strong { font-size: 25px; line-height: 1; }
.portal-summary-grid small { overflow-wrap: anywhere; }
.portal-tabs { display: flex; gap: 6px; margin: 0 0 16px; padding: 5px; overflow-x: auto; border: 1px solid var(--tp-line); border-radius: 14px; background: var(--tp-surface); scrollbar-width: thin; }
.portal-tabs button { min-height: 38px; padding: 8px 14px; border: 0; border-radius: 10px; color: var(--tp-text-muted); background: transparent; font-weight: 850; white-space: nowrap; }
.portal-tabs button:hover { color: var(--tp-text-strong); background: var(--tp-hover); }
.portal-tabs button.active { color: var(--tp-on-orange); background: var(--tp-orange); box-shadow: 0 7px 18px rgba(var(--brand-accent-rgb,255,119,14),.20); }
[data-portal-panel][hidden] { display: none !important; }
.portal-request { scroll-margin-top: 92px; }
.portal-request .summary-row.total { padding: 11px 0; }

/* Atendimento flutuante. */
.support-actions {
  position: fixed;
  z-index: 74;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 9px;
}
.support-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 8px 14px 8px 9px;
  border: 1px solid var(--tp-line);
  border-radius: 999px;
  color: var(--tp-text-strong);
  background: var(--tp-surface);
  box-shadow: 0 15px 38px rgba(0,0,0,.26);
  font-weight: 900;
}
.support-button:hover { transform: translateY(-2px); border-color: var(--tp-orange); }
.support-button-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; font-size: 11px; font-weight: 950; }
.support-button.whatsapp .support-button-icon { color: #062D1A; background: #35D27B; }
.support-button.chat { color: var(--tp-on-orange); border-color: color-mix(in srgb, var(--tp-orange) 60%, var(--tp-line)); background: linear-gradient(135deg,var(--tp-orange),color-mix(in srgb,var(--tp-orange) 78%,#FFB067)); }
.support-button.chat .support-button-icon { color: #17100A; background: rgba(255,255,255,.62); }
.support-unread { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 5px; border: 2px solid var(--tp-surface); border-radius: 999px; color: #FFF; background: #C92F26; font-size: 10px; }
.chat-backdrop { position: fixed; z-index: 78; inset: 0; border: 0; visibility: hidden; opacity: 0; background: rgba(4,4,5,.58); backdrop-filter: blur(2px); transition: opacity .2s ease, visibility .2s ease; }
.chat-drawer {
  position: fixed;
  z-index: 80;
  top: 0;
  right: 0;
  width: min(430px,100vw);
  height: 100dvh;
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  border-left: 1px solid var(--tp-line);
  color: var(--tp-text);
  background: var(--tp-bg);
  box-shadow: -28px 0 80px rgba(0,0,0,.32);
  transform: translateX(104%);
  visibility: hidden;
  transition: transform .24s ease, visibility .24s ease;
}
body.chat-open .chat-backdrop { visibility: visible; opacity: 1; }
body.chat-open .chat-drawer { visibility: visible; transform: translateX(0); }
.chat-drawer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; min-height: 92px; padding: 20px; border-bottom: 1px solid var(--tp-line); background: linear-gradient(145deg,var(--tp-surface),color-mix(in srgb,var(--tp-orange) 7%,var(--tp-surface))); }
.chat-drawer-head h2 { margin: 2px 0; font-size: 23px; }
.chat-drawer-head p { margin: 0; font-size: 12px; }
.chat-kicker { color: var(--tp-orange); font-size: 9px; font-weight: 950; letter-spacing: .16em; }
.chat-drawer-body { min-height: 0; overflow: hidden; }
.chat-welcome { min-height: 100%; display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 10px; padding: 28px; text-align: center; }
.chat-welcome-icon { display: grid; place-items: center; align-self: center; width: 58px; height: 58px; margin-bottom: 4px; border-radius: 19px; color: var(--tp-on-orange); background: var(--tp-orange); font-size: 24px; }
.chat-welcome h3 { margin: 4px 0 0; font-size: 24px; }
.chat-welcome p { margin: 0 0 8px; }
.chat-welcome small { margin-top: 7px; line-height: 1.5; }
.chat-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 12px; border-bottom: 1px solid var(--tp-line); background: var(--tp-surface); }
.chat-filters { display: flex; min-width: 0; gap: 4px; }
.chat-filters button { min-height: 32px; padding: 6px 9px; border: 0; border-radius: 8px; color: var(--tp-text-muted); background: transparent; font-size: 11px; font-weight: 850; }
.chat-filters button.active { color: var(--tp-on-orange); background: var(--tp-orange); }
.chat-list { height: 100%; overflow-y: auto; padding: 9px; }
.chat-list-item { width: 100%; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 12px; border: 1px solid transparent; border-radius: 13px; color: var(--tp-text); background: transparent; text-align: left; }
.chat-list-item:hover { border-color: var(--tp-line); background: var(--tp-surface); }
.chat-list-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: var(--tp-orange); background: color-mix(in srgb,var(--tp-orange) 12%,var(--tp-surface)); font-size: 10px; font-weight: 950; }
.chat-list-item > span:nth-child(2) { min-width: 0; }
.chat-list-item strong,.chat-list-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-list-item strong { font-size: 13px; }
.chat-list-item small { margin-top: 3px; color: var(--tp-text-muted); font-size: 10px; }
.chat-list-meta { display: grid; justify-items: end; gap: 3px; }
.chat-list-meta b { display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 4px; border-radius: 999px; color: #17100A !important; background: var(--tp-orange); font-size: 9px; }
.chat-start { width: calc(100% - 24px); margin: 12px; }
.chat-empty { display: grid; place-items: center; align-content: center; min-height: 240px; padding: 30px; text-align: center; }
.chat-empty.compact { min-height: 100%; }
.chat-empty p { margin: 5px 0 0; }
.chat-active { height: 100%; display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
.chat-active-bar { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 11px 13px; border-bottom: 1px solid var(--tp-line); background: var(--tp-surface); }
.chat-active-bar > div { min-width: 0; }
.chat-active-bar strong,.chat-active-bar small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-active-bar small { margin-top: 2px; color: var(--tp-text-muted); font-size: 10px; }
.chat-active-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.chat-active-actions .btn { min-height: 31px; padding: 6px 9px; }
.chat-back-button { width: 34px; height: 34px; border: 1px solid var(--tp-line); border-radius: 10px; color: var(--tp-text-strong); background: var(--tp-surface-2); font-weight: 900; }
.chat-messages { min-height: 0; display: flex; flex-direction: column; gap: 9px; overflow-y: auto; padding: 16px 14px; }
.chat-message { align-self: flex-start; max-width: 84%; }
.chat-message > div { padding: 10px 12px; border: 1px solid var(--tp-line); border-radius: 4px 14px 14px; color: var(--tp-text); background: var(--tp-surface); line-height: 1.48; overflow-wrap: anywhere; }
.chat-message.mine { align-self: flex-end; }
.chat-message.mine > div { border-color: color-mix(in srgb,var(--tp-orange) 40%,var(--tp-line)); border-radius: 14px 4px 14px 14px; color: var(--tp-text-strong); background: color-mix(in srgb,var(--tp-orange) 11%,var(--tp-surface)); }
.chat-message footer { margin-top: 3px; padding: 0 3px; color: var(--tp-text-muted); font-size: 9px; }
.chat-message.mine footer { text-align: right; }
.chat-compose { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 8px; padding: 12px; border-top: 1px solid var(--tp-line); background: var(--tp-surface); }
.chat-compose textarea { min-height: 45px; max-height: 125px; resize: vertical; padding: 11px; border: 1px solid var(--tp-line); border-radius: 12px; color: var(--tp-text-strong); background: var(--tp-input); }
.chat-compose .btn { min-height: 45px; }

/* Login: feedback visível, ação de recuperação e nenhum painel administrativo. */
.auth-feedback { margin: -8px 0 15px; padding: 11px 12px; border: 1px solid #633735; border-radius: 11px; color: #FFD3CE; background: #351817; font-size: 12px; line-height: 1.45; }
.auth-feedback.success { color: #BFF3D7; border-color: #285D45; background: #112D22; }
.auth-feedback.warning { color: #FFE1A7; border-color: #6A4A1E; background: #34230E; }
.auth-forgot { width: 100%; margin-top: 11px; border: 0; color: #C7B8AE; background: transparent; font-size: 11px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.auth-forgot:hover { color: #FF9B53; }
.recovery-layout { align-items: center; }

/* Precificação: hierarquia firme, controles legíveis e rolagem localizada. */
.pricing-step { overflow: hidden; }
.pricing-step .step-head { min-height: 76px; }
.pricing-step .step-head .btn { flex: 0 0 auto; min-height: 38px; }
.pricing-step .table-wrap { max-width: 100%; overscroll-behavior-inline: contain; scrollbar-gutter: stable; }
.pricing-step .calc-table { margin: 0; }
.pricing-step .calc-table th { position: sticky; top: 0; z-index: 2; }
.pricing-step .computed { min-width: 82px; }
.pricing-overview-strip > div { min-width: 0; }
.pricing-overview-strip strong { overflow-wrap: anywhere; }
.cost-summary { max-height: calc(100dvh - 96px); overflow-y: auto; scrollbar-width: thin; }

/* Regra final do modo escuro: nenhuma superfície operacional clara. */
html[data-theme="dark"] :is(
  .store-utility-bar,.portal-welcome,.portal-next-step,.portal-summary-grid>div,
  .portal-tabs,.support-button,.chat-drawer,.chat-drawer-head,.chat-toolbar,
  .chat-list-item:hover,.chat-active-bar,.chat-compose,.chat-message>div,
  .auth-form-secondary,.pricing-step,.pricing-step .step-body,.pricing-step .table-wrap,
  .catalog-media-editor,.catalog-media-thumb,.catalog-media-add
) {
  color: #EEE6DF !important;
  background-color: #151517 !important;
  border-color: #3E3938 !important;
}
html[data-theme="dark"] .portal-next-step { background: linear-gradient(105deg,#231A15,#151517) !important; }
html[data-theme="dark"] .portal-welcome { background: linear-gradient(135deg,#181719,#211813) !important; }
html[data-theme="dark"] .chat-message.mine > div { background: #2A1C14 !important; border-color: #77411D !important; }
html[data-theme="dark"] .chat-compose textarea { color: #FFF8F0 !important; background: #222225 !important; border-color: #484345 !important; }
html[data-theme="dark"] [data-portal-panel] .table-empty { color: #BFAFA4 !important; background: #171719 !important; }
html[data-theme="dark"] :is(.portal-summary-grid>div,.portal-tabs,.portal-orders-card,.compact-help) { box-shadow: none !important; }

@media (max-width: 980px) {
  .store-utility-bar { align-items: flex-start; }
  .portal-next-step { grid-template-columns: auto minmax(0,1fr); }
  .portal-next-step > .btn { grid-column: 1 / -1; width: 100%; }
  .portal-summary-grid { grid-template-columns: repeat(3,minmax(110px,1fr)); overflow-x: auto; }
  .cost-summary { max-height: none; overflow: visible; }
  .catalog-media-editor-grid { grid-template-columns: 1fr; }
  .catalog-cover-preview { max-width: 620px; margin-inline: auto; }
}

@media (max-width: 680px) {
  .store-utility-bar,.portal-welcome { align-items: stretch; flex-direction: column; }
  .store-utility-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .store-utility-actions .btn:last-child { grid-column: 1 / -1; }
  .portal-next-step { grid-template-columns: 1fr; text-align: left; }
  .portal-next-number { width: 38px; height: 38px; }
  .portal-summary-grid { grid-template-columns: 1fr; overflow: visible; }
  .portal-welcome .btn { width: 100%; }
  .support-actions { right: 10px; bottom: 10px; }
  .support-button { position: relative; width: 46px; min-width: 46px; min-height: 46px; padding: 6px; font-size: 11px; }
  .support-button > span:not(.support-button-icon):not(.support-unread) { display: none; }
  .support-button-icon { width: 32px; height: 32px; }
  .support-unread { position: absolute; top: -5px; right: -5px; min-width: 19px; height: 19px; font-size: 9px; }
  .chat-drawer { width: 100vw; border-left: 0; }
  .chat-drawer-head { padding: 16px; }
  .chat-active-bar { grid-template-columns: auto minmax(0,1fr); }
  .chat-active-actions { grid-column: 2; justify-content: flex-start; flex-wrap: wrap; }
  .chat-compose { grid-template-columns: 1fr; }
  .chat-compose .btn { width: 100%; }
  .pricing-step .step-head { align-items: flex-start; flex-wrap: wrap; }
  .pricing-step .step-head .btn { width: 100%; }
  .product-card:hover { transform: none; }
  .catalog-media-editor { padding: 13px; }
  .catalog-media-editor-head,.catalog-media-add { align-items: stretch; flex-direction: column; }
  .catalog-media-add .btn { width: 100%; }
  .catalog-media-url { grid-template-columns: 1fr; }
  .catalog-media-url .btn { width: 100%; }
  .catalog-media-thumbs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .product-carousel-arrow { width: 46px; height: 46px; }
}

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

/* ============================================================
   Proposta comercial v5.5 - editor, prévia editorial e impressão
   ============================================================ */
.proposal-page-head { align-items: flex-end; }
.proposal-readiness {
  display: flex;
  align-items: center;
  gap: 9px 16px;
  flex-wrap: wrap;
  padding: 13px 15px !important;
}
.proposal-readiness span { color: inherit; opacity: .86; }

.proposal-customizer {
  margin-bottom: 16px;
  overflow: hidden;
  border: 1px solid var(--tp-line);
  border-radius: 18px;
  background: var(--tp-surface);
  box-shadow: 0 10px 28px rgba(12,8,5,.06);
}
.proposal-customizer > summary {
  min-height: 70px;
  padding: 15px 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  cursor: pointer;
  list-style: none;
  color: var(--tp-text-strong);
  background: linear-gradient(180deg,var(--tp-surface),var(--tp-surface-2));
}
.proposal-customizer > summary::-webkit-details-marker { display: none; }
.proposal-customizer > summary span:first-child { display: grid; gap: 3px; }
.proposal-customizer > summary strong { font-size: 15px; }
.proposal-customizer > summary small { color: var(--tp-text-muted); font-size: 12px; }
.proposal-customizer-toggle {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid color-mix(in srgb,var(--tp-orange) 34%,var(--tp-line));
  border-radius: 10px;
  color: var(--tp-orange-dark);
  background: color-mix(in srgb,var(--tp-orange) 8%,var(--tp-surface));
  font-size: 12px;
  font-weight: 900;
}
.proposal-customizer[open] .proposal-customizer-toggle::after { content: " - aberto"; }
.proposal-customizer-body { padding: 17px; border-top: 1px solid var(--tp-line); }
.proposal-editor-copy { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.proposal-editor-wide { grid-column: 1 / -1; }
.proposal-visibility-options {
  display: grid;
  grid-template-columns: repeat(4,minmax(145px,1fr));
  gap: 9px;
  margin: 17px 0 0;
  padding: 14px;
  border: 1px solid var(--tp-line);
  border-radius: 14px;
}
.proposal-visibility-options legend { padding: 0 7px; color: var(--tp-text-strong); font-size: 12px; font-weight: 900; }
.proposal-option {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--tp-line);
  border-radius: 10px;
  color: var(--tp-text);
  background: var(--tp-surface-2);
  cursor: pointer;
  font-size: 12px;
  font-weight: 750;
}
.proposal-option:has(input:checked) {
  border-color: color-mix(in srgb,var(--tp-orange) 48%,var(--tp-line));
  background: color-mix(in srgb,var(--tp-orange) 8%,var(--tp-surface));
}
.proposal-option input { width: 17px; height: 17px; accent-color: var(--tp-orange); }
.proposal-editor-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; }
.proposal-editor-actions span { color: var(--tp-text-muted); font-size: 11px; }

.proposal-stage {
  padding: clamp(10px,2vw,24px) !important;
  border: 1px solid var(--tp-line);
  border-radius: 18px !important;
  background: #22272e !important;
  overscroll-behavior: contain;
}
.proposal-paper {
  --proposal-ink: #273444;
  --proposal-muted: #5E6A78;
  --proposal-line: #D8DEE6;
  --proposal-soft: #F4F6F8;
  --proposal-warm: #FFF3E9;
  width: 210mm !important;
  min-height: 297mm !important;
  padding: 13mm 13mm 11mm !important;
  color: var(--proposal-ink) !important;
  background: #FFFFFF !important;
  border: 0 !important;
  border-radius: 2px;
  box-shadow: 0 22px 58px rgba(0,0,0,.32) !important;
  font-family: Inter, Aptos, Arial, Helvetica, sans-serif !important;
  font-size: 10pt !important;
  line-height: 1.38;
}
.proposal-paper, .proposal-paper * { color-scheme: light !important; }
.proposal-paper :is(p,span,td,li,label,small) { color: var(--proposal-ink) !important; }
.proposal-paper :is(h1,h2,h3,h4,strong) { color: var(--proposal-ink) !important; }
.proposal-top {
  grid-template-columns: minmax(0,1fr) minmax(190px,.62fr) !important;
  align-items: start !important;
  gap: 18px !important;
  padding-bottom: 11px !important;
  border-bottom: 2px solid var(--proposal-accent) !important;
}
.proposal-brand { align-items: center !important; gap: 11px !important; min-width: 0; }
.proposal-logo { width: 49px !important; height: 49px !important; object-fit: contain !important; }
.proposal-fallback-logo { width: 48px !important; height: 48px !important; border-radius: 10px !important; background: var(--proposal-ink) !important; }
.proposal-company { color: var(--proposal-ink) !important; font-size: 16pt !important; letter-spacing: -.02em; }
.proposal-contact { margin-top: 4px !important; color: var(--proposal-muted) !important; font-size: 8pt !important; line-height: 1.42; }
.proposal-title { display: grid; justify-items: end; gap: 3px; text-align: right; }
.proposal-title strong { max-width: 260px; color: var(--proposal-ink) !important; font-size: 18pt !important; line-height: 1.02; text-transform: none; }
.proposal-title > span { color: var(--proposal-muted) !important; font-size: 9pt !important; font-weight: 800; }
.proposal-status {
  display: inline-flex;
  margin-top: 4px;
  padding: 4px 8px;
  border: 1px solid #B8E0CD;
  border-radius: 999px;
  color: #176B4B !important;
  background: #ECF8F2;
  font-size: 7.4pt;
  font-style: normal;
  font-weight: 850;
}
.proposal-status.is-draft { color: #8A4A13 !important; background: #FFF4E8; border-color: #F0C89F; }
.proposal-draft-banner {
  display: flex;
  gap: 9px;
  align-items: baseline;
  margin-top: 9px;
  padding: 7px 9px;
  border-left: 3px solid #DC7A1F;
  border-radius: 4px 7px 7px 4px;
  background: #FFF7ED;
  break-inside: avoid;
}
.proposal-draft-banner strong { color: #7A3C0D !important; font-size: 8.2pt; }
.proposal-draft-banner span { color: #76543A !important; font-size: 7.8pt; }
.proposal-introduction { margin-top: 11px; padding: 10px 11px; border: 1px solid var(--proposal-line); border-radius: 8px; background: #FAFBFC; break-inside: avoid; }
.proposal-introduction > span { display: block; margin-bottom: 3px; color: #A74808 !important; font-size: 7.4pt; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.proposal-introduction p { margin: 0; color: var(--proposal-ink) !important; font-size: 9pt; }
.proposal-meta-grid { grid-template-columns: 1.15fr .85fr !important; gap: 9px !important; margin-top: 11px !important; }
.proposal-box { border: 1px solid var(--proposal-line) !important; border-radius: 8px !important; background: #FFFFFF !important; }
.proposal-box-title { padding: 7px 9px !important; color: #354151 !important; background: var(--proposal-soft) !important; border-bottom: 1px solid var(--proposal-line); font-size: 7.5pt !important; letter-spacing: .08em !important; }
.proposal-box-body { padding: 9px !important; }
.proposal-data { grid-template-columns: 76px minmax(0,1fr) !important; gap: 3px 8px !important; font-size: 8.3pt !important; }
.proposal-data .label { color: var(--proposal-muted) !important; font-weight: 700 !important; }
.proposal-data .value { color: var(--proposal-ink) !important; font-weight: 750 !important; }
.proposal-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin: 14px 0 7px; break-after: avoid; }
.proposal-section-heading > div { display: grid; gap: 2px; }
.proposal-section-heading span { color: #A74808 !important; font-size: 7.4pt; font-weight: 900; letter-spacing: .1em; }
.proposal-section-heading strong { color: var(--proposal-ink) !important; font-size: 11.5pt; }
.proposal-section-heading small { margin-left: auto; padding-left: 12px; color: var(--proposal-muted) !important; font-size: 7.8pt; white-space: nowrap; }
.proposal-section-heading.compact { margin-top: 13px; }
.proposal-table { width: 100% !important; overflow: hidden; border: 1px solid var(--proposal-line); border-collapse: separate !important; border-spacing: 0; border-radius: 8px; table-layout: fixed; }
.proposal-table thead { display: table-header-group; }
.proposal-table th {
  padding: 7px 6px !important;
  color: #344152 !important;
  background: #EEF1F4 !important;
  border-bottom: 1px solid #C9D0D9 !important;
  font-size: 7.4pt !important;
  font-weight: 900 !important;
  text-align: left;
}
.proposal-table td {
  padding: 8px 6px !important;
  color: var(--proposal-ink) !important;
  background: #FFFFFF !important;
  border-bottom: 1px solid #E2E6EB !important;
  font-size: 8.3pt !important;
  vertical-align: top;
}
.proposal-table tbody tr:nth-child(even) td { background: #F8F9FA !important; }
.proposal-table tbody tr:last-child td { border-bottom: 0 !important; }
.proposal-table :is(.col-qty,.col-price,.col-total) { text-align: right !important; font-variant-numeric: tabular-nums; }
.proposal-table .col-unit,.proposal-table .col-item { text-align: center !important; }
.proposal-table .col-item { width: 7%; }
.proposal-table .col-sku { width: 14%; overflow-wrap: anywhere; }
.proposal-table .col-desc { width: auto; }
.proposal-table .col-qty { width: 8%; }
.proposal-table .col-unit { width: 8%; }
.proposal-table .col-price { width: 15%; }
.proposal-table .col-total { width: 15%; }
.proposal-table .col-desc > strong { display: block; color: var(--proposal-ink) !important; font-size: 8.5pt; }
.proposal-item-note { display: block !important; margin-top: 3px !important; color: var(--proposal-muted) !important; font-size: 7.5pt !important; line-height: 1.35; }
.proposal-empty-row { padding: 16px !important; color: var(--proposal-muted) !important; text-align: center; }
.proposal-density-compact .proposal-table td { padding-block: 5px !important; font-size: 7.8pt !important; }
.proposal-density-compact .proposal-item-note { font-size: 7.1pt !important; }
.proposal-summary-wrap { display: grid; grid-template-columns: minmax(0,1fr) minmax(235px,43%); gap: 18px; align-items: end; margin-top: 10px; break-inside: avoid; }
.proposal-summary-note { display: grid; gap: 3px; padding-left: 9px; border-left: 2px solid var(--proposal-accent); }
.proposal-summary-note strong { color: var(--proposal-ink) !important; font-size: 8pt; }
.proposal-summary-note span { color: var(--proposal-muted) !important; font-size: 7.4pt; }
.proposal-summary { width: 100% !important; margin: 0 !important; border: 1px solid var(--proposal-line); border-collapse: separate !important; border-spacing: 0; border-radius: 8px; overflow: hidden; }
.proposal-summary td { padding: 5px 8px !important; color: var(--proposal-ink) !important; background: #FFFFFF !important; border-bottom: 1px solid #E2E6EB !important; font-size: 8pt !important; }
.proposal-summary td:last-child { text-align: right !important; font-variant-numeric: tabular-nums; }
.proposal-summary .grand td { padding: 8px !important; color: #6F3108 !important; background: var(--proposal-warm) !important; border: 0 !important; font-size: 10pt !important; }
.proposal-summary .grand td:last-child { color: #9B3F00 !important; font-size: 11pt !important; }
.proposal-terms-section { break-inside: auto; }
.proposal-terms { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px !important; margin-top: 0 !important; }
.proposal-term { display: block !important; padding: 8px 9px; border: 1px solid var(--proposal-line) !important; border-radius: 7px !important; background: #FFFFFF !important; break-inside: avoid; }
.proposal-term strong { display: block; margin-bottom: 3px; padding: 0 !important; color: #9B3F00 !important; background: transparent !important; font-size: 7.4pt !important; text-transform: uppercase; letter-spacing: .06em; }
.proposal-term span { display: block; padding: 0 !important; color: var(--proposal-ink) !important; font-size: 7.7pt !important; line-height: 1.38; white-space: pre-line; }
.proposal-approval { display: grid; gap: 3px; margin-top: 10px !important; padding: 9px 10px !important; border: 1px solid #F0C89F !important; border-radius: 7px !important; color: var(--proposal-ink) !important; background: #FFF7ED !important; break-inside: avoid; }
.proposal-approval strong { color: #7A3C0D !important; font-size: 7.6pt; text-transform: uppercase; letter-spacing: .06em; }
.proposal-approval span { color: #654229 !important; font-size: 7.7pt; }
.proposal-signatures { gap: 28px !important; margin-top: var(--proposal-signature-spacing,12mm) !important; break-inside: avoid; }
.proposal-signature { display: grid; gap: 2px; padding-top: 5px !important; border-top: 1px solid #7A8491 !important; }
.proposal-signature span { color: var(--proposal-ink) !important; font-size: 7.8pt; font-weight: 750; }
.proposal-signature small { color: var(--proposal-muted) !important; font-size: 6.9pt; }
.proposal-footer { margin-top: auto !important; padding-top: 8px !important; border-top: 1px solid var(--proposal-line) !important; color: var(--proposal-muted) !important; font-size: 6.8pt !important; line-height: 1.35; }
.proposal-footer span { color: var(--proposal-muted) !important; }
.proposal-watermark { display: none !important; }
#proposalPrintRoot { display: none; }
.proposal-signature-spacing-field small { color: var(--tp-text-muted); font-size: 11px; line-height: 1.4; }
.proposal-unit-input { position: relative; display: flex; align-items: center; }
.proposal-unit-input input { width: 100%; padding-right: 48px !important; }
.proposal-unit-input > span { position: absolute; right: 14px; color: var(--tp-text-muted); font-size: 12px; font-weight: 850; pointer-events: none; }

html[data-theme="dark"] :is(.proposal-customizer,.proposal-customizer-body,.proposal-option) {
  color: var(--tp-text) !important;
  background-color: #171719 !important;
  border-color: #3E3938 !important;
}
html[data-theme="dark"] .proposal-customizer > summary { color: #FFF7F0 !important; background: linear-gradient(180deg,#202023,#19191B) !important; }
html[data-theme="dark"] .proposal-option:has(input:checked) { background: #2A1C14 !important; border-color: #8A4A20 !important; }

@media (max-width: 900px) {
  .proposal-editor-copy { grid-template-columns: 1fr; }
  .proposal-editor-wide { grid-column: auto; }
  .proposal-visibility-options { grid-template-columns: repeat(2,minmax(130px,1fr)); }
  .proposal-editor-actions { align-items: stretch; flex-direction: column; }
  .proposal-editor-actions .btn { width: 100%; }
}
@media (max-width: 520px) {
  .proposal-visibility-options { grid-template-columns: 1fr; }
  .proposal-customizer > summary { align-items: flex-start; }
  .proposal-customizer-toggle { display: none; }
}

@media print {
  @page { size: A4; margin: 0; }
  html, body { width: 210mm !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: #FFFFFF !important; }
  body.printing-proposal > *:not(#proposalPrintRoot) { display: none !important; }
  body.printing-proposal #proposalPrintRoot { display: block !important; width: 210mm !important; margin: 0 !important; padding: 0 !important; background: #FFFFFF !important; }
  #proposalPrintRoot .proposal-paper {
    position: static !important;
    display: flex !important;
    width: 210mm !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 9mm 12mm 8mm !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .proposal-top { padding-bottom: 7px !important; }
  .proposal-introduction { margin-top: 7px !important; padding: 7px 9px !important; }
  .proposal-meta-grid { margin-top: 8px !important; }
  .proposal-box-body { padding: 7px 8px !important; }
  .proposal-section-heading { margin: 10px 0 5px !important; }
  .proposal-table td { padding-block: 6px !important; }
  .proposal-summary-wrap { margin-top: 7px !important; }
  .proposal-terms { gap: 5px !important; }
  .proposal-term { padding: 6px 8px !important; }
  .proposal-approval { margin-top: 7px !important; padding: 7px 9px !important; }
  .proposal-signatures { margin-top: var(--proposal-signature-spacing,12mm) !important; }
  .proposal-footer { margin-top: 5px !important; }
  .proposal-table thead { display: table-header-group !important; }
  .proposal-table tr,.proposal-box,.proposal-introduction,.proposal-summary-wrap,.proposal-term,.proposal-approval,.proposal-signatures { break-inside: avoid !important; page-break-inside: avoid !important; }
  .proposal-section-heading { break-after: avoid !important; page-break-after: avoid !important; }
}

/* Documento comercial sempre claro, inclusive quando o portal está no modo escuro. */
.proposal-final-note { display: grid; gap: 3px; margin-top: 8px; padding: 8px 10px; border-left: 3px solid var(--proposal-accent); border-radius: 4px 7px 7px 4px; background: #FFF8F1 !important; break-inside: avoid; }
.proposal-final-note strong { color: #8A3B08 !important; font-size: 7.5pt; text-transform: uppercase; letter-spacing: .06em; }
.proposal-final-note span { color: #3B302A !important; font-size: 7.7pt; }
.proposal-signature-person { display: block; color: #202B38 !important; font-size: 8.2pt !important; line-height: 1.25; }
.proposal-footer { display: flex !important; justify-content: flex-end !important; text-align: right !important; }
.proposal-footer span { color: #4C5867 !important; font-weight: 800 !important; letter-spacing: .02em; }

html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper),
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) :is(.proposal-box,.proposal-box-body,.proposal-table,.proposal-table thead,.proposal-table tbody,.proposal-table tr,.proposal-summary,.proposal-term) { background-color: #FFFFFF !important; color: #273444 !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) * { color: #273444 !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) .proposal-table th { background: #EEF1F4 !important; color: #344152 !important; border-color: #C9D0D9 !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) .proposal-table td { background: #FFFFFF !important; color: #273444 !important; border-color: #E2E6EB !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) .proposal-table tbody tr:nth-child(even) td { background: #F8F9FA !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) .proposal-summary td { background: #FFFFFF !important; color: #273444 !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) .proposal-summary .grand td { background: #FFF3E9 !important; color: #6F3108 !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) :is(.proposal-title strong,.proposal-section-heading strong,.proposal-company,.proposal-data .value,.proposal-signature-person) { color: #273444 !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) :is(.proposal-contact,.proposal-title > span,.proposal-data .label,.proposal-section-heading small,.proposal-item-note,.proposal-signature small) { color: #5E6A78 !important; }
html[data-theme="dark"] :is(.proposal-paper,#proposalPrintRoot .proposal-paper) :is(.proposal-introduction > span,.proposal-section-heading span,.proposal-term strong,.proposal-approval strong,.proposal-final-note strong,.proposal-summary-note strong) { color: #8A3B08 !important; }

@media print {
  #proposalPrintRoot .proposal-paper,
  #proposalPrintRoot .proposal-paper :is(.proposal-box,.proposal-box-body,.proposal-table,.proposal-table thead,.proposal-table tbody,.proposal-table tr,.proposal-summary,.proposal-term) { background-color: #FFFFFF !important; color: #273444 !important; }
  #proposalPrintRoot .proposal-paper * { color: #273444 !important; }
  #proposalPrintRoot .proposal-paper .proposal-table th { background: #EEF1F4 !important; color: #344152 !important; }
  #proposalPrintRoot .proposal-paper .proposal-table td { background: #FFFFFF !important; color: #273444 !important; }
  #proposalPrintRoot .proposal-paper .proposal-table tbody tr:nth-child(even) td { background: #F8F9FA !important; }
  #proposalPrintRoot .proposal-paper .proposal-summary td { background: #FFFFFF !important; color: #273444 !important; }
  #proposalPrintRoot .proposal-paper .proposal-summary .grand td { background: #FFF3E9 !important; color: #6F3108 !important; }
  #proposalPrintRoot .proposal-paper :is(.proposal-introduction > span,.proposal-section-heading span,.proposal-term strong,.proposal-approval strong,.proposal-final-note strong,.proposal-summary-note strong) { color: #8A3B08 !important; }
  #proposalPrintRoot .proposal-paper :is(.proposal-contact,.proposal-title > span,.proposal-data .label,.proposal-section-heading small,.proposal-item-note,.proposal-signature small) { color: #5E6A78 !important; }
}
