:root {
  --ink: #162033;
  --muted: #667085;
  --line: #dfe5ec;
  --surface: #ffffff;
  --surface-soft: #f4f6f9;
  --brand: #203c5a;
  --brand-2: #315f8a;
  --brand-soft: #e9f0f7;
  --danger: #b42318;
  --warning: #9a6700;
  --radius: 16px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--surface-soft);
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { min-height: 100vh; margin: 0; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button:disabled, input:disabled, select:disabled { cursor: not-allowed; opacity: .58; }

.login-page {
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 85% 15%, rgba(89, 137, 181, .36), transparent 34%),
    radial-gradient(circle at 15% 85%, rgba(43, 78, 111, .4), transparent 32%),
    linear-gradient(145deg, #07121e, #12283e 58%, #0a1725);
}

.login-shell { width: min(100%, 450px); }
.login-card {
  padding: 32px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 24px;
  color: white;
  background: rgba(10, 24, 39, .94);
  box-shadow: 0 30px 90px rgba(0,0,0,.38);
  backdrop-filter: blur(14px);
}

.login-brand { display: flex; align-items: center; gap: 13px; }
.login-brand img, .brand-logo { width: 44px; height: 44px; object-fit: contain; border-radius: 11px; }
.login-brand div { display: grid; gap: 1px; }
.login-brand span { color: #9bbbd8; font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.login-brand strong { font-size: 17px; }
.login-heading { margin: 30px 0 22px; }
.login-heading h1 { margin: 0 0 8px; font-size: 29px; letter-spacing: -.025em; }
.login-heading p { margin: 0; color: #adbdcc; line-height: 1.55; }

.form-stack { display: grid; gap: 17px; }
.field { display: grid; gap: 7px; }
.field > span:first-child { font-size: 13px; font-weight: 750; }
.field input, .field select, .field textarea, .region-select select, .search-panel input {
  width: 100%;
  padding: 12px 13px;
  border: 1px solid var(--line);
  border-radius: 11px;
  outline: none;
  color: var(--ink);
  background: white;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.login-page .field input { border-color: rgba(255,255,255,.18); color: white; background: #11263a; }
.field input:focus, .field select:focus, .field textarea:focus, .region-select select:focus {
  border-color: #4f82b2;
  box-shadow: 0 0 0 4px rgba(60,110,158,.16);
}
.password-wrap { position: relative; display: block; }
.password-wrap input { padding-right: 50px; }
.password-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: #b8cbe0;
  background: transparent;
  transform: translateY(-50%);
  cursor: pointer;
}
.password-toggle:hover { background: rgba(255,255,255,.07); }
.password-toggle svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-toggle .eye-closed { display: none; }
.password-toggle.password-visible .eye-open { display: none; }
.password-toggle.password-visible .eye-closed { display: block; }

.remember-row { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.remember-row input { margin-top: 4px; accent-color: #5485b5; }
.remember-row span { display: grid; gap: 2px; }
.remember-row strong { font-size: 13px; }
.remember-row small { color: #a9b9ca; line-height: 1.4; }
.login-help { display: grid; gap: 3px; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); font-size: 12px; }
.login-help span { color: #a9b9ca; }

.button {
  display: inline-flex;
  min-height: 43px;
  align-items: center;
  justify-content: center;
  padding: 10px 15px;
  border: 1px solid var(--line);
  border-radius: 11px;
  font-weight: 780;
  text-decoration: none;
  color: var(--ink);
  background: white;
  cursor: pointer;
  transition: transform .12s ease, background .12s ease;
}
.button:hover:not(:disabled) { transform: translateY(-1px); }
.button-primary { border-color: var(--brand); color: white; background: var(--brand); }
.button-primary:hover:not(:disabled) { background: var(--brand-2); }
.button-block { width: 100%; }
.alert { padding: 12px 13px; margin-bottom: 18px; border-radius: 10px; font-size: 13px; line-height: 1.45; }
.alert-error { border: 1px solid rgba(248,113,113,.3); color: #fecaca; background: rgba(127,29,29,.25); }
.alert-warning { border: 1px solid rgba(251,191,36,.35); color: #fde68a; background: rgba(120,74,0,.24); }

.topbar, .admin-topbar {
  display: flex;
  min-height: 72px;
  align-items: center;
  justify-content: space-between;
  padding: 12px max(24px, calc((100vw - 1240px)/2));
  border-bottom: 1px solid var(--line);
  background: white;
}
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.brand > span { display: grid; }
.brand small { color: var(--muted); }
.user-menu { display: flex; align-items: center; gap: 16px; font-size: 13px; }
.user-menu a { font-weight: 750; color: var(--brand-2); text-decoration: none; }
.page-shell, .admin-shell { width: min(1240px, calc(100% - 32px)); margin: 26px auto 60px; }
.admin-shell.narrow { max-width: 900px; }

.hero-panel {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
}
.eyebrow { color: #4778a5; font-size: 11px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.hero-panel h1, .page-heading h1 { margin: 5px 0 8px; font-size: clamp(25px, 3vw, 36px); letter-spacing: -.03em; }
.hero-panel p, .page-heading p { margin: 0; color: var(--muted); line-height: 1.55; }
.region-select { display: grid; min-width: 260px; gap: 6px; }
.region-select span { font-size: 13px; font-weight: 750; }
.workspace-grid { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 20px; margin-top: 20px; }
.content-column { min-width: 0; }
.search-panel { display: flex; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.category-strip { display: flex; gap: 8px; padding: 14px 0; overflow-x: auto; scrollbar-width: thin; }
.chip { flex: 0 0 auto; padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: white; }
.chip.active { border-color: var(--brand); color: white; background: var(--brand); }
.chip small { margin-left: 4px; opacity: .7; }
.empty-state {
  display: grid;
  min-height: 360px;
  place-items: center;
  align-content: center;
  padding: 40px;
  border: 1px dashed #c7cfd8;
  border-radius: var(--radius);
  text-align: center;
  background: rgba(255,255,255,.58);
}
.empty-state h2 { margin: 12px 0 5px; }
.empty-state p { max-width: 600px; margin: 0; color: var(--muted); line-height: 1.65; }
.empty-icon { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 50%; color: var(--brand); background: var(--brand-soft); font-size: 24px; }
.cart-panel { position: sticky; top: 20px; height: fit-content; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.panel-title { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.panel-title h2 { margin: 3px 0 0; }
.badge { display: grid; min-width: 28px; height: 28px; place-items: center; border-radius: 999px; color: white; background: var(--brand); font-size: 12px; }
.muted { color: var(--muted); }
.cart-total { display: flex; justify-content: space-between; padding: 16px 0; margin-top: 30px; border-top: 1px solid var(--line); }
.draft-section { margin-top: 30px; }
.section-heading h2 { margin: 4px 0 12px; }
.small-empty { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--muted); background: white; }
.draft-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 12px; }
.draft-card { display: grid; gap: 5px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.draft-card span, .draft-card small { color: var(--muted); }

.admin-body { background: #f4f6f8; }
.page-heading { display: flex; justify-content: space-between; margin-bottom: 22px; }
.stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.stat-card { display: grid; gap: 8px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.stat-card span { color: var(--muted); font-size: 13px; }
.stat-card strong { font-size: 28px; }
.module-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; margin-top: 22px; }
.module-card { display: grid; min-height: 220px; align-content: start; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.module-card h2 { margin: 12px 0 7px; }
.module-card p { margin: 0 0 20px; color: var(--muted); line-height: 1.5; }
.module-card .button { width: fit-content; margin-top: auto; }
.module-card.disabled { opacity: .68; }
.module-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; color: var(--brand); background: var(--brand-soft); font-size: 20px; }
.tag { width: fit-content; margin-top: auto; padding: 6px 9px; border-radius: 999px; color: #667085; background: #f0f2f5; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.form-card, .notice-card { padding: 22px; margin-bottom: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.form-grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 15px; }
.button-row { display: flex; gap: 10px; margin-top: 16px; }
.prompt-output { width: 100%; min-height: 490px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; resize: vertical; color: #202939; background: #f8fafc; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; line-height: 1.55; }
.notice-card { border-left: 4px solid var(--brand-2); }
.notice-card p { margin-bottom: 0; color: var(--muted); }

.simple-error-page { display: grid; place-items: center; padding: 24px; background: var(--surface-soft); }
.simple-error-card { width: min(100%, 520px); padding: 32px; border: 1px solid var(--line); border-radius: 18px; text-align: center; background: white; }
.simple-error-card img { width: 54px; height: 54px; object-fit: contain; }
.simple-error-card h1 { margin: 18px 0 8px; }
.simple-error-card p { margin: 0 0 22px; color: var(--muted); line-height: 1.55; }

@media (max-width: 860px) {
  .workspace-grid { grid-template-columns: 1fr; }
  .cart-panel { position: static; }
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .hero-panel { align-items: stretch; flex-direction: column; }
  .region-select { min-width: 0; }
}

@media (max-width: 620px) {
  .topbar, .admin-topbar { padding: 12px 16px; }
  .user-menu span { display: none; }
  .page-shell, .admin-shell { width: min(100% - 20px, 1240px); margin-top: 14px; }
  .hero-panel { padding: 18px; }
  .workspace-grid { gap: 12px; }
  .search-panel { flex-direction: column; }
  .stats-grid, .module-grid, .form-grid.two { grid-template-columns: 1fr; }
  .login-card { padding: 24px; }
  .button-row { flex-direction: column; }
}

/* Etapa 2: importação, validação e catálogo de teste */
.admin-alert { padding: 13px 15px; margin-bottom: 18px; border: 1px solid var(--line); border-radius: 11px; font-size: 13px; line-height: 1.5; background: white; }
.admin-alert-error { border-color: #f5b7b1; color: #912018; background: #fff3f2; }
.admin-alert-success { border-color: #a9d7bd; color: #166534; background: #effaf3; }
.upload-card { border-top: 4px solid var(--brand-2); }
.upload-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch; gap: 12px; margin-top: 18px; }
.file-drop { position: relative; display: grid; min-height: 112px; grid-template-columns: 46px 1fr; grid-template-rows: auto auto; align-content: center; column-gap: 12px; padding: 17px; border: 1px dashed #9fb0c1; border-radius: 13px; background: #f8fafc; cursor: pointer; }
.file-drop:hover { border-color: var(--brand-2); background: #f1f6fb; }
.file-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-icon { grid-row: 1 / 3; display: grid; width: 44px; height: 44px; place-items: center; border-radius: 11px; color: var(--brand); background: var(--brand-soft); font-size: 23px; }
.file-drop strong { align-self: end; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-drop small { align-self: start; color: var(--muted); }
.upload-form > .button { min-width: 150px; }
.table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.admin-table th, .admin-table td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.admin-table th { color: #475467; background: #f8fafc; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.admin-table tbody tr:hover { background: #fafcff; }
.table-link { color: var(--brand-2); font-weight: 800; text-decoration: none; }
.status-pill { display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: 7px 10px; border-radius: 999px; font-size: 11px; font-weight: 850; white-space: nowrap; background: #eef2f6; }
.status-validada { color: #1d4f7a; background: #e8f2fb; }
.status-publicada { color: #166534; background: #dcfce7; }
.status-com-erros { color: #991b1b; background: #fee2e2; }
.status-validando, .status-recebida { color: #854d0e; background: #fef3c7; }
.status-cancelada { color: #475467; background: #eaecf0; }
.import-heading { align-items: center; gap: 20px; }
.import-stats { margin-bottom: 18px; }
.publish-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; margin-bottom: 18px; border: 1px solid #a9d7bd; border-radius: var(--radius); background: #f3fbf6; }
.publish-card p { margin: 4px 0 0; color: var(--muted); }
.notice-danger { border-left-color: #b42318; background: #fff7f6; }
.notice-success { border-left-color: #18864b; background: #f3fbf6; }
.row-erro { background: #fff5f4; }
.row-novo { background: #f4fbf7; }
.row-alterado { background: #fffaf0; }
.line-status { font-size: 11px; font-weight: 850; }
.product-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(230px,1fr)); gap: 14px; }
.product-card { display: grid; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.product-image { display: grid; height: 148px; place-items: center; overflow: hidden; color: var(--brand); background: linear-gradient(145deg,#eef3f8,#f8fafc); font-size: 32px; }
.product-image img { width: 100%; height: 100%; object-fit: cover; }
.product-content { display: grid; gap: 9px; padding: 16px; }
.product-content h2 { margin: 0; font-size: 18px; }
.product-content p { min-height: 20px; margin: 0; color: var(--muted); }
.product-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.product-meta span { padding: 4px 7px; border-radius: 999px; color: #526273; background: #f1f4f7; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.product-price { display: grid; gap: 2px; padding-top: 6px; }
.product-price small { color: var(--muted); }
.product-price strong { font-size: 22px; color: var(--brand); }
.category-strip a.chip { text-decoration: none; }

@media (max-width: 700px) {
  .upload-form { grid-template-columns: 1fr; }
  .publish-card { align-items: stretch; flex-direction: column; }
  .publish-card form, .publish-card .button { width: 100%; }
  .import-heading { align-items: flex-start; flex-direction: column; }
}

/* Etapa 3 — interface definitiva do Eko'7 Orçamento */
:root {
  --eko-blue: #1F5FD1;
  --eko-blue-dark: #174BA7;
  --eko-blue-soft: #eef5ff;
  --eko-ink: #101a31;
  --eko-muted: #65708a;
  --eko-line: #dfe6f0;
  --eko-bg: #f7f9fc;
  --eko-green: #15803d;
  --eko-red: #e32929;
  --eko-shadow: 0 12px 35px rgba(18, 52, 96, .08);
}

.client-body { background: var(--eko-bg); color: var(--eko-ink); padding-bottom: env(safe-area-inset-bottom); }
.client-header {
  position: sticky; top: 0; z-index: 50; display: flex; min-height: 82px; align-items: center; justify-content: space-between;
  gap: 20px; padding: 12px max(24px, calc((100vw - 1540px)/2)); border-bottom: 1px solid var(--eko-line); background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
}
.client-brand { display: flex; align-items: center; gap: 16px; min-width: 0; text-decoration: none; }
.client-logo { width: 68px; height: 54px; object-fit: contain; border-radius: 10px; }
.client-brand-copy { display: grid; min-width: 0; padding-left: 16px; border-left: 1px solid var(--eko-line); }
.client-brand-copy strong { font-size: 22px; letter-spacing: -.02em; }
.client-brand-copy small { color: var(--eko-muted); font-size: 13px; }
.client-header-actions { display: flex; align-items: center; gap: 22px; }
.save-indicator { display: inline-flex; align-items: center; gap: 8px; color: #4c5870; font-size: 13px; }
.save-indicator i { width: 12px; height: 12px; border: 3px solid #fff; border-radius: 50%; background: #1caf52; box-shadow: 0 0 0 1px #b5d9c1; }
.profile-menu { position: relative; }
.profile-menu summary { display: grid; width: 42px; height: 42px; place-items: center; border: 2px solid var(--eko-blue); border-radius: 50%; color: var(--eko-blue); font-weight: 800; cursor: pointer; list-style: none; }
.profile-menu summary::-webkit-details-marker { display: none; }
.profile-menu > div { position: absolute; right: 0; top: 52px; display: grid; width: 220px; gap: 4px; padding: 15px; border: 1px solid var(--eko-line); border-radius: 13px; background: #fff; box-shadow: var(--eko-shadow); }
.profile-menu > div small { color: var(--eko-muted); }
.profile-menu > div a { margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--eko-line); color: var(--eko-blue); font-weight: 750; text-decoration: none; }
.client-shell { width: min(1540px, calc(100% - 32px)); margin: 18px auto 64px; }

.region-panel, .config-card, .product-hero-card, .summary-table-card, .summary-settings-card, .proposal-summary-card,
.finalize-form-card, .document-preview-card, .proposal-document { border: 1px solid var(--eko-line); border-radius: 15px; background: #fff; box-shadow: 0 2px 8px rgba(18,52,96,.03); }
.region-panel { padding: 20px; }
.section-title-row { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.section-title-row h1 { margin: 0; font-size: 19px; }
.section-title-row p { margin: 5px 0 0; color: var(--eko-muted); font-size: 13px; }
.revision-note { color: var(--eko-muted); font-size: 13px; }
.region-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.region-card { position: relative; display: flex; min-height: 108px; align-items: center; justify-content: center; gap: 14px; padding: 16px; border: 1px solid var(--eko-line); border-radius: 12px; text-decoration: none; background: #fff; transition: .18s ease; }
.region-card:hover { border-color: #8eb8ff; transform: translateY(-1px); }
.region-card.active { border: 2px solid var(--eko-blue); color: var(--eko-blue); background: linear-gradient(145deg,#fff,#f2f7ff); }
.region-card.locked { opacity: .45; cursor: not-allowed; pointer-events: none; }
.region-symbol { display: grid; width: 52px; height: 52px; place-items: center; border: 1px dashed currentColor; border-radius: 44% 56% 50% 50%; color: #9ca9bb; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.region-card.active .region-symbol { color: var(--eko-blue); }
.region-check { position: absolute; top: 10px; right: 10px; display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; color: #fff; background: var(--eko-blue); font-style: normal; font-size: 12px; }

.catalog-layout { display: grid; grid-template-columns: minmax(0,1fr) 390px; gap: 20px; margin-top: 18px; align-items: start; }
.catalog-main { min-width: 0; }
.catalog-search { display: flex; gap: 10px; margin-bottom: 14px; }
.catalog-search label { display: flex; flex: 1; min-width: 0; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid var(--eko-line); border-radius: 11px; background: #fff; }
.catalog-search label span { color: var(--eko-muted); font-size: 24px; }
.catalog-search input { width: 100%; min-height: 50px; border: 0; outline: 0; background: transparent; font-size: 15px; }
.ui-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border: 1px solid var(--eko-line); border-radius: 10px; color: var(--eko-ink); background: #fff; font-weight: 750; text-decoration: none; cursor: pointer; transition: .15s ease; }
.ui-button:hover:not(:disabled) { border-color: #9bbcf1; transform: translateY(-1px); }
.ui-button-primary { border-color: var(--eko-blue); color: #fff; background: linear-gradient(135deg,var(--eko-blue),#174BA7); }
.ui-button-primary:hover:not(:disabled) { background: var(--eko-blue-dark); }
.ui-button-outline { border-color: var(--eko-blue); color: var(--eko-blue); background: #fff; }
.ui-button-block { width: 100%; }
.category-tabs { display: flex; gap: 9px; margin: 0 0 14px; padding: 0 2px 4px; overflow-x: auto; scrollbar-width: thin; }
.category-tabs a { display: inline-flex; flex: 0 0 auto; min-height: 40px; align-items: center; gap: 7px; padding: 8px 17px; border: 1px solid var(--eko-line); border-radius: 999px; color: var(--eko-blue); background: #fff; font-weight: 700; text-decoration: none; }
.category-tabs a.active { border-color: var(--eko-blue); color: #fff; background: var(--eko-blue); }
.category-tabs small { display: grid; min-width: 20px; height: 20px; place-items: center; border-radius: 999px; background: rgba(31,95,209,.09); font-size: 10px; }
.category-tabs a.active small { background: rgba(255,255,255,.2); }
.catalog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.catalog-card { overflow: hidden; border: 1px solid var(--eko-line); border-radius: 14px; background: #fff; box-shadow: 0 3px 12px rgba(24,60,105,.04); }
.catalog-photo { display: grid; height: 230px; place-items: center; overflow: hidden; background: linear-gradient(145deg,#f1f3f6,#fff); }
.catalog-photo img { width: 100%; height: 100%; object-fit: contain; }
.product-placeholder { color: #9ca8ba; font-size: 54px; }
.catalog-copy { display: grid; gap: 9px; padding: 15px; }
.catalog-copy h2 { margin: 0; font-size: 17px; }
.catalog-copy p { min-height: 42px; margin: 0; color: var(--eko-muted); font-size: 13px; line-height: 1.5; }
.catalog-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.catalog-badges span { padding: 5px 9px; border-radius: 999px; color: #5f6b7e; background: #f0f3f8; font-size: 10px; font-weight: 750; }
.catalog-price { display: grid; gap: 2px; margin-top: 2px; }
.catalog-price small { color: var(--eko-muted); }
.catalog-price strong { color: var(--eko-blue); font-size: 22px; }
.catalog-empty { display: grid; min-height: 360px; place-items: center; align-content: center; padding: 30px; border: 1px dashed #c5cfde; border-radius: 14px; text-align: center; background: #fff; }
.catalog-empty.compact { min-height: 220px; }
.catalog-empty > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: var(--eko-blue); background: var(--eko-blue-soft); font-size: 24px; }
.catalog-empty h2 { margin: 12px 0 5px; }
.catalog-empty p { margin: 0; color: var(--eko-muted); }

.opportunity-card { position: sticky; top: 100px; overflow: hidden; border: 1px solid var(--eko-line); border-radius: 14px; background: #fff; box-shadow: var(--eko-shadow); }
.opportunity-head { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 12px; padding: 18px; color: #fff; background: linear-gradient(135deg,#1F5FD1,#174BA7); }
.opportunity-icon { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 9px; font-size: 20px; }
.opportunity-head > div:nth-child(2) { display: grid; }
.opportunity-head small { color: rgba(255,255,255,.82); }
.opportunity-count { display: grid; min-width: 28px; height: 28px; place-items: center; border-radius: 999px; background: rgba(255,255,255,.18); }
.opportunity-body { padding: 18px; }
.cart-empty { display: grid; min-height: 190px; place-items: center; align-content: center; gap: 6px; color: var(--eko-muted); text-align: center; }
.cart-empty > span { font-size: 35px; color: #a2aec0; }
.cart-list { display: grid; gap: 2px; max-height: 410px; overflow: auto; }
.cart-item { display: grid; grid-template-columns: 62px 1fr auto; gap: 10px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--eko-line); }
.cart-thumb { display: grid; width: 62px; height: 62px; place-items: center; overflow: hidden; border-radius: 8px; background: #f2f4f7; }
.cart-thumb img { width: 100%; height: 100%; object-fit: contain; }
.cart-thumb span { color: #9ca8ba; font-size: 23px; }
.cart-item-copy { display: grid; min-width: 0; gap: 3px; }
.cart-item-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.cart-item-copy small { color: var(--eko-muted); font-size: 11px; }
.cart-item-value { font-size: 12px; font-weight: 750; white-space: nowrap; }
.cart-totals { display: grid; gap: 10px; margin: 14px 0; padding-top: 14px; border-top: 1px solid var(--eko-line); }
.cart-totals > div { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.cart-totals .discount strong { color: var(--eko-green); }
.cart-totals .grand { padding-top: 10px; border-top: 1px solid var(--eko-line); font-size: 16px; }
.cart-totals .grand strong { color: var(--eko-blue); font-size: 21px; }
.mobile-cart-bar { display: none; }

.breadcrumbs { display: flex; align-items: center; gap: 9px; margin: 4px 0 16px; color: var(--eko-muted); font-size: 13px; }
.breadcrumbs a { color: var(--eko-blue); text-decoration: none; }
.product-hero-card { display: grid; grid-template-columns: 260px 1fr; gap: 28px; padding: 20px; }
.product-detail-photo { display: grid; height: 200px; place-items: center; overflow: hidden; border-radius: 12px; background: linear-gradient(145deg,#f0f2f5,#fff); }
.product-detail-photo img { width: 100%; height: 100%; object-fit: contain; }
.product-detail-copy h1 { margin: 0 0 8px; font-size: 26px; }
.product-detail-copy p { max-width: 850px; margin: 13px 0; color: var(--eko-muted); line-height: 1.6; }
.feature-row { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 18px; color: #526078; font-size: 12px; }
.feature-row span { display: inline-flex; align-items: center; gap: 7px; }
.feature-row b { color: var(--eko-blue); font-size: 16px; }
.detail-layout { grid-template-columns: minmax(0,1fr) 390px; }
.config-card { padding: 20px; }
.config-section + .config-section { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--eko-line); }
.config-section h2 { margin: 0 0 14px; font-size: 16px; }
.config-grid { display: grid; gap: 14px; }
.config-grid.four { grid-template-columns: repeat(4,minmax(0,1fr)); }
.config-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.span-two { grid-column: span 2; }
.field { display: grid; gap: 7px; }
.field > span { color: #26334a; font-size: 12px; font-weight: 750; }
.field input, .field select, .field textarea, .setting-block textarea { width: 100%; padding: 11px 12px; border: 1px solid var(--eko-line); border-radius: 9px; outline: 0; color: var(--eko-ink); background: #fff; }
.field input:focus, .field select:focus, .field textarea:focus, .setting-block textarea:focus { border-color: var(--eko-blue); box-shadow: 0 0 0 3px rgba(31,95,209,.1); }
.quantity-field > div { display: grid; grid-template-columns: 40px 1fr 40px; border: 1px solid var(--eko-line); border-radius: 9px; overflow: hidden; }
.quantity-field button { border: 0; color: var(--eko-blue); background: #f7faff; font-size: 20px; cursor: pointer; }
.quantity-field input { border: 0; border-left: 1px solid var(--eko-line); border-right: 1px solid var(--eko-line); border-radius: 0; text-align: center; }
.info-strip { margin-top: 12px; padding: 10px 12px; border-radius: 8px; color: #0757d0; background: #eaf3ff; font-size: 12px; }
.choice-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.choice-card { position: relative; display: flex; min-height: 48px; align-items: center; padding: 10px 14px; border: 1px solid var(--eko-line); border-radius: 10px; background: #fff; cursor: pointer; }
.choice-card:has(input:checked) { border: 2px solid var(--eko-blue); color: var(--eko-blue); background: #f6f9ff; }
.choice-card input { margin: 0 9px 0 0; accent-color: var(--eko-blue); }
.choice-card span { display: grid; gap: 2px; font-size: 12px; font-weight: 700; }
.choice-card small { color: var(--eko-muted); font-weight: 500; }
.choice-card.included { background: #f5fbf7; }
.detail-side { display: grid; gap: 16px; align-self: start; }
.calculation-card { position: sticky; top: 100px; display: grid; gap: 12px; padding: 20px; border: 1px solid var(--eko-line); border-radius: 14px; background: #fff; box-shadow: var(--eko-shadow); }
.calculation-card h2 { margin: 0 0 5px; }
.calculation-card > div { display: flex; justify-content: space-between; gap: 15px; font-size: 13px; }
.calculation-card .discount strong { color: var(--eko-green); }
.calculation-total { margin-top: 5px; padding: 15px 0; border-top: 1px solid var(--eko-line); border-bottom: 1px solid var(--eko-line); font-size: 16px !important; }
.calculation-total strong { color: var(--eko-blue); font-size: 23px; }
.form-message { min-height: 18px; margin: 0; color: var(--eko-muted); font-size: 12px; text-align: center; }
.form-message.error { color: var(--eko-red); }
.ui-alert { padding: 12px 14px; margin-bottom: 16px; border-radius: 9px; font-size: 13px; }
.ui-alert-error { border: 1px solid #ffc6c6; color: #a41616; background: #fff2f2; }

.page-title-block { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 10px 0 18px; }
.page-title-block h1 { margin: 0 0 5px; font-size: 28px; }
.page-title-block p { margin: 0; color: var(--eko-muted); }
.title-status { display: grid; gap: 5px; justify-items: end; }
.title-status span { padding: 7px 11px; border-radius: 999px; color: #9b5b00; background: #fff0d7; font-size: 12px; font-weight: 750; }
.title-status small { color: var(--eko-muted); }
.summary-layout { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 20px; align-items: start; }
.summary-main { display: grid; gap: 14px; }
.summary-table-card { overflow: hidden; }
.summary-item { display: grid; grid-template-columns: 82px minmax(180px,1.2fr) 72px 150px minmax(150px,.8fr) 80px; gap: 14px; align-items: center; padding: 16px; border-bottom: 1px solid var(--eko-line); }
.summary-item:last-child { border-bottom: 0; }
.summary-photo { display: grid; width: 82px; height: 72px; place-items: center; overflow: hidden; border-radius: 9px; background: #f1f3f6; }
.summary-photo img { width: 100%; height: 100%; object-fit: contain; }
.summary-photo span { color: #9ca8ba; font-size: 28px; }
.summary-product { display: grid; gap: 3px; min-width: 0; }
.summary-product small { color: var(--eko-muted); font-size: 11px; }
.summary-product a { margin-top: 4px; color: var(--eko-blue); font-size: 11px; text-decoration: none; }
.summary-quantity, .summary-observation { display: grid; gap: 5px; }
.summary-quantity span, .summary-observation span { color: var(--eko-muted); font-size: 10px; }
.summary-quantity input, .summary-observation input { width: 100%; padding: 9px; border: 1px solid var(--eko-line); border-radius: 8px; }
.summary-values { display: grid; gap: 2px; }
.summary-values small { color: var(--eko-muted); font-size: 10px; }
.summary-values b { color: var(--eko-blue); }
.summary-actions { display: flex; gap: 6px; }
.icon-button { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #a7c7fb; border-radius: 8px; color: var(--eko-blue); background: #fff; cursor: pointer; }
.icon-button.danger { border-color: #ffc2c2; color: var(--eko-red); }
.summary-settings-card { padding: 18px; }
.setting-block + .setting-block { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--eko-line); }
.setting-block h2 { margin: 0 0 5px; font-size: 15px; }
.setting-block p { margin: 0 0 13px; color: var(--eko-muted); font-size: 12px; }
.discount-fields { display: grid; grid-template-columns: minmax(120px,1fr) auto minmax(140px,1fr) auto; gap: 10px; align-items: end; }
.input-suffix, .input-prefix { display: flex; align-items: center; border: 1px solid var(--eko-line); border-radius: 9px; overflow: hidden; }
.input-suffix input, .input-prefix input { border: 0; border-radius: 0; }
.input-suffix span, .input-prefix span { padding: 0 10px; color: var(--eko-muted); }
.proposal-summary-card { position: sticky; top: 100px; display: grid; gap: 14px; padding: 20px; }
.proposal-summary-card h2 { margin: 0 0 5px; }
.proposal-summary-card > div { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.proposal-summary-card .discount strong { color: var(--eko-green); }
.proposal-total { margin: 4px 0; padding: 16px 0; border-top: 1px solid var(--eko-line); border-bottom: 1px solid var(--eko-line); font-size: 16px !important; }
.proposal-total strong { color: var(--eko-blue); font-size: 23px; }
.payment-select { margin: 4px 0; }
.text-danger-button { border: 0; color: var(--eko-red); background: transparent; font-size: 12px; cursor: pointer; }

.finalize-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(500px,1.15fr); gap: 20px; align-items: start; }
.finalize-form-card { padding: 20px; }
.finalize-form-card h2 { margin-top: 0; }
.finalize-form-card .ui-button { margin-top: 10px; }
.quote-facts { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin: 20px 0; overflow: hidden; border: 1px solid var(--eko-line); border-radius: 10px; background: var(--eko-line); }
.quote-facts > div { display: grid; gap: 5px; padding: 13px; background: #fff; }
.quote-facts span { color: var(--eko-muted); font-size: 10px; }
.document-preview-card { padding: 18px; background: #3d4148; }
.document-preview-sheet { min-height: 720px; padding: 38px; background: #fff; box-shadow: 0 8px 30px rgba(0,0,0,.22); }
.preview-brand { display: flex; align-items: center; gap: 20px; color: var(--eko-blue); font-size: 18px; }
.preview-brand img { width: 90px; height: 60px; object-fit: contain; }
.preview-rule { height: 2px; margin: 18px 0; background: var(--eko-blue); }
.preview-info { display: grid; grid-template-columns: 120px 1fr; gap: 8px; font-size: 12px; }
.preview-info span { color: var(--eko-muted); text-transform: uppercase; }
.document-preview-sheet h3 { margin-top: 28px; color: var(--eko-blue); font-size: 13px; text-transform: uppercase; }
.preview-item { display: flex; justify-content: space-between; gap: 15px; padding: 12px 0; border-bottom: 1px solid var(--eko-line); font-size: 12px; }
.preview-item span { display: grid; }
.preview-item small { color: var(--eko-muted); }
.preview-total { display: flex; justify-content: space-between; margin-top: 25px; padding-top: 15px; border-top: 2px solid var(--eko-blue); color: var(--eko-blue); font-size: 18px; }

.proposal-actions { display: flex; gap: 10px; }
.proposal-document { max-width: 1100px; margin: 0 auto; padding: 36px; }
.proposal-document-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 2px solid var(--eko-blue); }
.proposal-document-brand { display: flex; align-items: center; gap: 18px; color: var(--eko-blue); font-size: 20px; }
.proposal-document-brand img { width: 100px; height: 65px; object-fit: contain; }
.proposal-document-brand div, .proposal-document-head > div:last-child { display: grid; gap: 3px; }
.proposal-document-head small { color: var(--eko-muted); font-size: 10px; text-transform: uppercase; }
.proposal-info-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; padding: 24px 0; }
.proposal-info-grid > div { display: grid; gap: 4px; }
.proposal-info-grid span { color: var(--eko-muted); font-size: 10px; text-transform: uppercase; }
.document-section-title { color: var(--eko-blue); font-size: 15px; }
.proposal-items-table { border: 1px solid var(--eko-line); border-radius: 10px; overflow: hidden; }
.proposal-items-table article { display: grid; grid-template-columns: 70px minmax(0,1fr) 60px 130px 130px; gap: 12px; align-items: center; padding: 12px; border-bottom: 1px solid var(--eko-line); }
.proposal-items-table article:last-child { border-bottom: 0; }
.proposal-item-photo { display: grid; width: 66px; height: 55px; place-items: center; overflow: hidden; border-radius: 7px; background: #f1f3f6; }
.proposal-item-photo img { width: 100%; height: 100%; object-fit: contain; }
.proposal-items-table article > div:nth-child(2) { display: grid; gap: 2px; }
.proposal-items-table small { color: var(--eko-muted); font-size: 10px; }
.proposal-financial { display: grid; gap: 9px; width: min(100%,460px); margin: 26px 0 0 auto; padding: 18px; border: 1px solid var(--eko-line); border-radius: 10px; }
.proposal-financial > div { display: flex; justify-content: space-between; gap: 15px; }
.proposal-financial .total { margin-top: 5px; padding-top: 12px; border-top: 1px solid var(--eko-blue); color: var(--eko-blue); font-size: 18px; }
.proposal-notes { margin-top: 24px; padding: 16px; border-radius: 10px; background: #f7f9fc; }
.proposal-notes h2 { margin: 0 0 8px; font-size: 14px; }
.proposal-notes p { margin: 0; color: var(--eko-muted); line-height: 1.55; }
.proposal-document footer { margin-top: 28px; padding-top: 13px; border-top: 1px solid var(--eko-blue); color: var(--eko-muted); font-size: 10px; text-align: center; }

@media (max-width: 1240px) {
  .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .summary-item { grid-template-columns: 72px minmax(160px,1fr) 70px 130px 70px; }
  .summary-observation { grid-column: 2 / 5; }
  .summary-actions { grid-column: 5; grid-row: 1 / 3; }
}
@media (max-width: 980px) {
  .catalog-layout, .detail-layout, .summary-layout, .finalize-layout { grid-template-columns: 1fr; }
  .opportunity-card { position: static; }
  .detail-side .opportunity-card { display: none; }
  .calculation-card, .proposal-summary-card { position: static; }
  .region-grid { grid-template-columns: repeat(2,1fr); }
  .config-grid.four { grid-template-columns: repeat(2,1fr); }
  .document-preview-card { display: none; }
  .summary-item { grid-template-columns: 72px minmax(0,1fr) 70px 120px 70px; }
}
@media (max-width: 700px) {
  .client-header { min-height: 72px; padding: 10px 14px; }
  .client-logo { width: 55px; height: 43px; }
  .client-brand-copy { padding-left: 10px; }
  .client-brand-copy strong { font-size: 16px; }
  .client-brand-copy small, .save-indicator { display: none; }
  .client-header-actions { gap: 9px; }
  .client-shell { width: min(100% - 18px,1540px); margin-top: 10px; padding-bottom: 90px; }
  .region-panel { padding: 14px; }
  .section-title-row { align-items: start; flex-direction: column; }
  .region-grid { display: flex; gap: 9px; overflow-x: auto; }
  .region-card { flex: 0 0 140px; min-height: 110px; flex-direction: column; gap: 8px; padding: 10px; text-align: center; }
  .region-symbol { width: 42px; height: 42px; }
  .catalog-search { flex-wrap: wrap; }
  .catalog-search label { flex-basis: 100%; }
  .catalog-search .ui-button { flex: 1; }
  .catalog-grid { grid-template-columns: 1fr; gap: 9px; }
  .catalog-card { display: grid; grid-template-columns: 42% 1fr; }
  .catalog-photo { height: auto; min-height: 150px; }
  .catalog-copy { padding: 12px; gap: 5px; }
  .catalog-copy h2 { font-size: 15px; }
  .catalog-copy p { min-height: 0; font-size: 12px; }
  .catalog-badges span { font-size: 9px; }
  .catalog-price strong { font-size: 19px; }
  .catalog-copy .ui-button { min-height: 38px; padding: 6px 10px; }
  .catalog-layout > .opportunity-card { display: none; }
  .mobile-cart-bar { position: fixed; left: 9px; right: 9px; bottom: calc(9px + env(safe-area-inset-bottom)); z-index: 60; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; padding: 11px 12px; border: 2px solid var(--eko-blue); border-radius: 14px; background: #fff; box-shadow: 0 12px 34px rgba(8,67,150,.22); }
  .mobile-cart-bar > div { display: grid; }
  .mobile-cart-bar small { color: var(--eko-muted); }
  .mobile-cart-bar strong { color: var(--eko-blue); }
  .mobile-cart-bar a, .mobile-cart-bar button { min-height: 38px; padding: 8px 13px; border: 0; border-radius: 9px; color: #fff; background: var(--eko-blue); text-decoration: none; font-weight: 750; }
  .product-hero-card { grid-template-columns: 120px 1fr; gap: 14px; padding: 13px; }
  .product-detail-photo { height: 120px; }
  .product-detail-copy h1 { font-size: 20px; }
  .product-detail-copy p { display: none; }
  .feature-row { gap: 8px; margin-top: 10px; font-size: 10px; }
  .config-card { padding: 14px; }
  .config-grid.four, .config-grid.two { grid-template-columns: 1fr 1fr; }
  .choice-grid { display: grid; grid-template-columns: 1fr 1fr; }
  .choice-card { padding: 9px; }
  .summary-item { grid-template-columns: 66px minmax(0,1fr) 62px; gap: 10px; padding: 12px; }
  .summary-photo { width: 66px; height: 62px; }
  .summary-values { grid-column: 2; }
  .summary-observation { grid-column: 1 / 4; }
  .summary-actions { grid-column: 3; grid-row: 1 / 3; flex-direction: column; justify-self: end; }
  .discount-fields { grid-template-columns: 1fr 1fr; }
  .discount-fields > span { display: none; }
  .discount-fields .ui-button { grid-column: 1 / 3; }
  .page-title-block { align-items: start; flex-direction: column; }
  .page-title-block h1 { font-size: 23px; }
  .quote-facts { grid-template-columns: 1fr 1fr; }
  .proposal-actions { width: 100%; }
  .proposal-actions .ui-button { flex: 1; }
  .proposal-document { padding: 18px; }
  .proposal-document-head { align-items: start; flex-direction: column; }
  .proposal-info-grid { grid-template-columns: 1fr 1fr; }
  .proposal-items-table article { grid-template-columns: 56px 1fr auto; }
  .proposal-items-table article > strong:nth-last-child(2) { display: none; }
  .proposal-items-table article > strong:last-child { grid-column: 3; }
  .proposal-item-photo { width: 52px; height: 50px; }
}
@media (max-width: 430px) {
  .config-grid.four, .config-grid.two { grid-template-columns: 1fr; }
  .span-two { grid-column: span 1; }
  .choice-grid { grid-template-columns: 1fr; }
  .product-hero-card { grid-template-columns: 1fr; }
  .product-detail-photo { height: 180px; }
}

/* Gestão administrativa */
.eko-admin-body { background: #f7f9fc; color: var(--eko-ink); }
.eko-admin-layout { display: grid; min-height: 100vh; grid-template-columns: 250px minmax(0,1fr); }
.eko-admin-sidebar { position: sticky; top: 0; display: flex; height: 100vh; flex-direction: column; border-right: 1px solid var(--eko-line); background: #fff; }
.eko-admin-logo { display: flex; min-height: 88px; align-items: center; gap: 12px; padding: 15px 20px; border-bottom: 1px solid var(--eko-line); text-decoration: none; }
.eko-admin-logo img { width: 62px; height: 52px; object-fit: contain; }
.eko-admin-logo > span { display: grid; font-weight: 800; }
.eko-admin-logo small { color: var(--eko-muted); font-size: 11px; font-weight: 500; }
.eko-admin-sidebar nav { display: grid; gap: 3px; padding: 16px 10px; overflow-y: auto; }
.eko-admin-sidebar nav a { display: grid; grid-template-columns: 30px 1fr; min-height: 45px; align-items: center; padding: 8px 12px; border-radius: 8px; color: #45526b; text-decoration: none; font-size: 13px; }
.eko-admin-sidebar nav a i { color: #52657f; font-style: normal; font-size: 18px; }
.eko-admin-sidebar nav a:hover { color: var(--eko-blue); background: #f6f9ff; }
.eko-admin-sidebar nav a.active { position: relative; color: var(--eko-blue); background: #eaf2ff; font-weight: 750; }
.eko-admin-sidebar nav a.active::before { position: absolute; left: -10px; width: 3px; height: 30px; border-radius: 0 4px 4px 0; background: var(--eko-blue); content: ''; }
.eko-admin-exit { margin: auto 12px 14px; padding: 12px; border-top: 1px solid var(--eko-line); color: var(--eko-blue); text-decoration: none; font-size: 13px; }
.eko-admin-content { min-width: 0; }
.eko-admin-header { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 28px; border-bottom: 1px solid var(--eko-line); background: #fff; }
.eko-admin-header > div { display: grid; gap: 3px; }
.eko-admin-header > div strong { font-size: 20px; }
.eko-admin-header small, .eko-admin-header > span { color: var(--eko-muted); font-size: 12px; }
.eko-admin-main { padding: 26px 28px 50px; }
.admin-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.admin-page-heading h1 { margin: 0 0 5px; font-size: 30px; letter-spacing: -.025em; }
.admin-page-heading p { margin: 0; color: var(--eko-muted); }
.admin-heading-actions { display: flex; align-items: center; gap: 10px; }
.admin-metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 20px; }
.admin-metric-grid article { display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 13px; min-height: 108px; padding: 17px; border: 1px solid var(--eko-line); border-radius: 13px; background: #fff; box-shadow: 0 3px 12px rgba(24,60,105,.04); }
.metric-icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: var(--eko-blue); background: var(--eko-blue-soft); font-size: 24px; }
.admin-metric-grid article > div { display: grid; gap: 2px; }
.admin-metric-grid small, .admin-metric-grid span:not(.metric-icon) { color: var(--eko-muted); font-size: 11px; }
.admin-metric-grid strong { font-size: 25px; }
.admin-dashboard-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 16px; margin-bottom: 16px; }
.admin-panel { padding: 20px; border: 1px solid var(--eko-line); border-radius: 13px; background: #fff; box-shadow: 0 3px 12px rgba(24,60,105,.04); }
.admin-panel.no-padding { padding: 0; overflow: hidden; }
.admin-panel h2 { margin: 0 0 14px; font-size: 17px; }
.admin-panel-description { margin: -4px 0 16px; color: var(--eko-muted); font-size: 12px; }
.admin-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.admin-panel-head.padded { padding: 18px 20px; }
.admin-panel-head h2 { margin: 0 0 4px; }
.admin-panel-head p { margin: 0; color: var(--eko-muted); font-size: 12px; }
.admin-panel-head a { color: var(--eko-blue); font-size: 12px; font-weight: 750; text-decoration: none; }
.revision-highlight { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 13px; margin-top: 16px; padding: 15px; border: 1px solid #a9c8fb; border-radius: 11px; background: #f5f9ff; }
.revision-highlight > span { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 50%; color: var(--eko-blue); background: #e7f1ff; font-size: 21px; }
.revision-highlight > div { display: grid; gap: 3px; }
.revision-highlight small { color: var(--eko-muted); }
.revision-highlight b { padding: 6px 9px; border-radius: 999px; color: var(--eko-green); background: #dcfce7; font-size: 10px; }
.movement-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.movement-cards > div { display: grid; gap: 4px; padding: 18px; border-radius: 11px; background: #f7f9fc; }
.movement-cards strong { color: var(--eko-blue); font-size: 26px; }
.movement-cards span { color: var(--eko-muted); font-size: 12px; }
.admin-empty { padding: 24px; color: var(--eko-muted); text-align: center; }
.admin-table-wrap { width: 100%; overflow-x: auto; }
.eko-admin-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.eko-admin-table th, .eko-admin-table td { padding: 12px 14px; border-bottom: 1px solid var(--eko-line); text-align: left; vertical-align: middle; }
.eko-admin-table th { color: #506078; background: #f8faff; font-size: 10px; letter-spacing: .02em; text-transform: uppercase; }
.eko-admin-table tbody tr:hover { background: #fafcff; }
.eko-admin-table td strong { display: block; }
.eko-admin-table td small { display: block; margin-top: 3px; color: var(--eko-muted); }
.eko-admin-table input { min-width: 105px; padding: 8px; border: 1px solid var(--eko-line); border-radius: 7px; }
.table-empty { padding: 35px !important; color: var(--eko-muted); text-align: center !important; }
.admin-table-footer { padding: 13px 18px; color: var(--eko-muted); font-size: 11px; }
.admin-status { display: inline-flex; align-items: center; width: fit-content; padding: 6px 9px; border-radius: 999px; color: #526078; background: #edf0f4; font-size: 10px; font-weight: 800; white-space: nowrap; }
.admin-status.ativo, .admin-status.publicada, .admin-status.finalizado, .admin-status.novo, .admin-status.validada { color: #147239; background: #dff8e7; }
.admin-status.inativo, .admin-status.cancelado, .admin-status.cancelada { color: #596173; background: #eceff3; }
.admin-status.rascunho, .admin-status.recebida, .admin-status.validando, .admin-status.alterado { color: #915c00; background: #fff0cf; }
.admin-status.com-erros, .admin-status.erro, .admin-status.expirado { color: #a31d1d; background: #ffe1e1; }
.admin-action-button { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #a7c7fb; border-radius: 8px; color: var(--eko-blue); background: #fff; text-decoration: none; }
.admin-product-thumb { display: grid; width: 55px; height: 44px; place-items: center; overflow: hidden; border-radius: 7px; background: #f0f3f7; }
.admin-product-thumb img { width: 100%; height: 100%; object-fit: contain; }
.admin-product-thumb span { color: #9ca8ba; font-size: 21px; }
.admin-filter-bar { display: grid; grid-template-columns: minmax(260px,1fr) 180px 180px 150px auto auto; gap: 10px; align-items: end; padding: 15px; margin-bottom: 16px; border: 1px solid var(--eko-line); border-radius: 12px; background: #fff; }
.admin-filter-bar label { display: grid; gap: 5px; }
.admin-filter-bar label > span { color: var(--eko-muted); font-size: 10px; }
.admin-filter-bar input, .admin-filter-bar select { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid var(--eko-line); border-radius: 8px; background: #fff; }
.admin-search { display: flex !important; min-height: 42px; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--eko-line); border-radius: 8px; }
.admin-search > span { font-size: 20px !important; }
.admin-search input { min-height: 40px; padding: 0; border: 0; outline: 0; }
.admin-edit-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 16px; align-items: start; }
.admin-edit-main, .admin-edit-side { display: grid; gap: 16px; }
.admin-edit-side { position: sticky; top: 18px; }
.admin-form-grid { display: grid; gap: 13px; }
.admin-form-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.admin-form-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.admin-form-grid .span-two { grid-column: span 2; }
.admin-form-grid .span-three { grid-column: span 3; }
.admin-form-grid label { display: grid; gap: 6px; }
.admin-form-grid label > span { color: #39475f; font-size: 11px; font-weight: 700; }
.admin-form-grid input, .admin-form-grid select, .admin-form-grid textarea { width: 100%; padding: 10px 11px; border: 1px solid var(--eko-line); border-radius: 8px; outline: 0; }
.admin-form-grid input:focus, .admin-form-grid select:focus, .admin-form-grid textarea:focus { border-color: var(--eko-blue); box-shadow: 0 0 0 3px rgba(31,95,209,.08); }
.toggle-row { display: flex; flex-wrap: wrap; gap: 18px; margin-bottom: 16px; }
.toggle-row label { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; }
.toggle-row input { accent-color: var(--eko-blue); }
.admin-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.admin-check-grid.one { grid-template-columns: 1fr; }
.admin-check-grid label { display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--eko-line); border-radius: 8px; }
.admin-check-grid input { accent-color: var(--eko-blue); }
.admin-check-grid label > span { display: grid; gap: 2px; }
.admin-check-grid small { color: var(--eko-muted); font-size: 9px; }
.admin-association-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.admin-association-columns h3 { margin: 0 0 10px; font-size: 13px; }
.admin-image-preview { display: grid; height: 210px; place-items: center; overflow: hidden; margin-bottom: 12px; border: 1px dashed #abc6ef; border-radius: 10px; background: #f8fbff; }
.admin-image-preview img { width: 100%; height: 100%; object-fit: contain; }
.admin-image-preview span { color: #9ca8ba; font-size: 50px; }
.admin-file-field { position: relative; display: grid; gap: 3px; padding: 13px; border: 1px dashed #9ebcf0; border-radius: 9px; color: var(--eko-blue); text-align: center; cursor: pointer; }
.admin-file-field input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.admin-file-field small { color: var(--eko-muted); font-size: 10px; }
.admin-file-field.large { min-width: 230px; }
.remove-image { display: flex; align-items: center; gap: 7px; margin-top: 10px; color: var(--eko-red); font-size: 11px; }
.admin-product-summary { display: grid; gap: 11px; }
.admin-product-summary > div { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; }
.admin-product-summary span { color: var(--eko-muted); }
.admin-form-actions { display: flex; gap: 9px; margin-top: 5px; }
.admin-checkbox-field { display: flex !important; align-items: center; gap: 8px; min-height: 42px; padding: 9px; border: 1px solid var(--eko-line); border-radius: 8px; }
.admin-checkbox-field input { width: auto; accent-color: var(--eko-blue); }
.admin-cadastro-layout { display: grid; grid-template-columns: minmax(320px,.7fr) minmax(520px,1.3fr); gap: 16px; align-items: start; }
.admin-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.admin-detail-list { display: grid; gap: 10px; }
.admin-detail-list > div { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 9px; border-bottom: 1px solid var(--eko-line); }
.admin-detail-list span { color: var(--eko-muted); font-size: 12px; }
.admin-detail-list .detail-total { padding-top: 8px; color: var(--eko-blue); font-size: 17px; }
.admin-import-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 16px; align-items: start; }
.admin-import-grid > div { display: grid; gap: 16px; }
.import-upload-panel { display: grid; min-height: 300px; place-items: center; align-content: center; text-align: center; border-style: dashed; }
.upload-cloud { color: var(--eko-blue); font-size: 55px; }
.import-upload-panel h2 { margin: 5px 0; }
.import-upload-panel p { margin: 0 0 16px; color: var(--eko-muted); }
.admin-upload-form { display: flex; align-items: stretch; justify-content: center; gap: 10px; }
.import-history-list { display: grid; gap: 8px; margin-top: 15px; }
.import-history-list a { display: grid; grid-template-columns: 46px 1fr auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--eko-line); border-radius: 9px; color: inherit; text-decoration: none; }
.import-history-list a > div { display: grid; min-width: 0; gap: 2px; }
.import-history-list small { overflow: hidden; color: var(--eko-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.import-history-list .metric-icon { width: 42px; height: 42px; font-size: 19px; }

@media (max-width: 1180px) {
  .eko-admin-layout { grid-template-columns: 78px minmax(0,1fr); }
  .eko-admin-logo { justify-content: center; padding: 14px 8px; }
  .eko-admin-logo > span, .eko-admin-sidebar nav a span, .eko-admin-exit { font-size: 0; }
  .eko-admin-sidebar nav a { grid-template-columns: 1fr; justify-items: center; padding: 8px; }
  .eko-admin-sidebar nav a i { font-size: 20px; }
  .admin-filter-bar { grid-template-columns: minmax(240px,1fr) repeat(3,150px) auto; }
  .admin-filter-bar > .ui-button:last-child { display: none; }
  .admin-edit-layout { grid-template-columns: 1fr; }
  .admin-edit-side { position: static; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .admin-metric-grid { grid-template-columns: repeat(2,1fr); }
  .admin-dashboard-grid, .admin-cadastro-layout, .admin-import-grid, .admin-detail-grid { grid-template-columns: 1fr; }
  .admin-filter-bar { grid-template-columns: 1fr 1fr; }
  .admin-search { grid-column: 1 / 3; }
  .admin-form-grid.three { grid-template-columns: 1fr 1fr; }
  .admin-form-grid .span-three { grid-column: span 2; }
}
@media (max-width: 650px) {
  .eko-admin-layout { display: block; }
  .eko-admin-sidebar { position: static; width: 100%; height: auto; border-right: 0; }
  .eko-admin-logo { justify-content: flex-start; }
  .eko-admin-logo > span { display: grid; font-size: initial; }
  .eko-admin-sidebar nav { display: flex; padding: 8px; overflow-x: auto; }
  .eko-admin-sidebar nav a { flex: 0 0 48px; }
  .eko-admin-exit { display: none; }
  .eko-admin-header { min-height: 62px; padding: 10px 14px; }
  .eko-admin-main { padding: 16px 10px 40px; }
  .admin-page-heading { align-items: stretch; flex-direction: column; }
  .admin-heading-actions { width: 100%; }
  .admin-heading-actions .ui-button { flex: 1; }
  .admin-metric-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .admin-metric-grid article { grid-template-columns: 42px 1fr; min-height: 88px; padding: 11px; }
  .admin-metric-grid .metric-icon { width: 38px; height: 38px; font-size: 18px; }
  .admin-metric-grid strong { font-size: 20px; }
  .admin-filter-bar { grid-template-columns: 1fr; }
  .admin-search { grid-column: auto; }
  .admin-form-grid.two, .admin-form-grid.three, .admin-association-columns, .admin-edit-side { grid-template-columns: 1fr; }
  .admin-form-grid .span-two, .admin-form-grid .span-three { grid-column: span 1; }
  .admin-check-grid { grid-template-columns: 1fr; }
  .admin-upload-form { flex-direction: column; }
}

/* Histórico do distribuidor */
.history-shell { max-width: 1220px; }
.history-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 22px 0 18px; }
.history-heading h1 { margin: 8px 0 4px; font-size: 30px; letter-spacing: -.025em; }
.history-heading p { margin: 0; color: var(--eko-muted); }
.back-link { color: var(--eko-blue); font-size: 13px; font-weight: 750; text-decoration: none; }
.history-filters { display: flex; gap: 8px; margin-bottom: 14px; overflow-x: auto; }
.history-filters a { flex: 0 0 auto; padding: 9px 16px; border: 1px solid var(--eko-line); border-radius: 999px; color: var(--eko-muted); background: #fff; font-weight: 700; text-decoration: none; }
.history-filters a.active { border-color: var(--eko-blue); color: #fff; background: var(--eko-blue); }
.history-list { display: grid; gap: 10px; }
.history-card { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 20px; padding: 17px; border: 1px solid var(--eko-line); border-radius: 13px; background: #fff; box-shadow: 0 3px 12px rgba(24,60,105,.04); }
.history-card-main { display: flex; min-width: 0; align-items: center; gap: 13px; }
.history-card-main > div { min-width: 0; }
.history-icon { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; border-radius: 11px; color: var(--eko-blue); background: var(--eko-blue-soft); font-size: 21px; }
.history-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.history-card-main p { margin: 4px 0; color: #33405a; }
.history-card-main small, .history-card-value small, .history-card-value time { color: var(--eko-muted); font-size: 11px; }
.history-status { padding: 4px 8px; border-radius: 999px; color: #765000; background: #fff0cf; font-size: 10px; font-weight: 800; }
.history-status.finalizado { color: #147239; background: #dff8e7; }
.history-status.cancelado, .history-status.expirado { color: #677080; background: #eceff3; }
.history-card-value { display: grid; min-width: 135px; justify-items: end; gap: 2px; }
.history-card-value strong { color: var(--eko-blue); font-size: 18px; }
.profile-menu > div a + a { margin-top: 0; }

@media (max-width: 760px) {
  .history-heading { align-items: stretch; flex-direction: column; }
  .history-card { grid-template-columns: 1fr auto; gap: 12px; }
  .history-card > .ui-button { grid-column: 1 / 3; width: 100%; }
}
@media (max-width: 480px) {
  .history-card { grid-template-columns: 1fr; }
  .history-card-value { justify-items: start; }
  .history-card > .ui-button { grid-column: auto; }
}

.admin-tab-nav { display: flex; gap: 8px; margin: 0 0 16px; }
.admin-tab-nav a { padding: 9px 14px; border: 1px solid var(--eko-line); border-radius: 9px; color: var(--eko-muted); background: #fff; font-size: 12px; font-weight: 750; text-decoration: none; }
.admin-tab-nav a.active { border-color: var(--eko-blue); color: #fff; background: var(--eko-blue); }

.restriction-section { border: 1px solid #ffd2d2; border-radius: 10px; background: #fff8f8; }
.restriction-list { display: grid; gap: 7px; }
.restriction-list p { display: grid; grid-template-columns: minmax(120px,.3fr) 1fr; gap: 12px; margin: 0; padding: 8px 0; border-bottom: 1px solid #f5dede; font-size: 12px; }
.restriction-list p:last-child { border-bottom: 0; }
.restriction-list strong { color: #a31d1d; }
.restriction-list span { color: #6d4b4b; }

/* Gestão simplificada - 2026-08-04 */
.admin-alert-info { border-color: #b9d4ff; color: #174a91; background: #f2f7ff; }
.admin-alert a { color: inherit; font-weight: 800; }
.eko-admin-sidebar-note { display: grid; gap: 4px; margin: 4px 12px 14px; padding: 12px; border: 1px solid #d9e7ff; border-radius: 9px; color: #31527f; background: #f5f9ff; font-size: 11px; line-height: 1.45; }
.eko-admin-sidebar-note strong { color: #164b97; font-size: 11px; }
.admin-metric-grid-simple .metric-code { font-size: 20px; }
.admin-routine-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 20px; }
.admin-routine-card { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 13px; min-height: 118px; padding: 18px; border: 1px solid var(--eko-line); border-radius: 13px; color: inherit; background: #fff; box-shadow: 0 3px 12px rgba(24,60,105,.04); text-decoration: none; }
.admin-routine-card:hover { border-color: #9dc0fa; box-shadow: 0 8px 24px rgba(24,60,105,.08); }
.admin-routine-card > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #fff; background: var(--eko-blue); font-weight: 850; }
.admin-routine-card div { display: grid; gap: 5px; }
.admin-routine-card strong { font-size: 15px; }
.admin-routine-card p { margin: 0; color: var(--eko-muted); font-size: 12px; line-height: 1.45; }
.admin-routine-card b { color: var(--eko-blue); font-size: 20px; }
.admin-guidance-card p { margin: 4px 0 18px; color: var(--eko-muted); line-height: 1.6; }
.admin-guidance-card a { color: var(--eko-blue); font-size: 12px; font-weight: 800; text-decoration: none; }
.ui-button-small { min-height: 34px; padding: 7px 11px; font-size: 11px; white-space: nowrap; }
.simplified-products-table .presentation-ok { color: #16834a; font-size: 11px; font-weight: 750; }
.simplified-products-table .presentation-missing { color: #a15b00; font-size: 11px; font-weight: 750; }
.simplified-products-table td:nth-child(2) { min-width: 230px; }
.product-readonly-header { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; padding: 14px; border: 1px solid var(--eko-line); border-radius: 10px; background: #f8faff; }
.product-readonly-header div { display: grid; gap: 3px; }
.product-readonly-header small, .technical-summary-grid small { color: var(--eko-muted); font-size: 10px; }
.product-readonly-header strong, .technical-summary-grid strong { font-size: 12px; }
.admin-form-grid.one label small { color: var(--eko-muted); font-size: 10px; }
.admin-visibility-toggle { display: flex; align-items: flex-start; gap: 11px; padding: 14px; border: 1px solid var(--eko-line); border-radius: 10px; cursor: pointer; }
.admin-visibility-toggle input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--eko-blue); }
.admin-visibility-toggle span { display: grid; gap: 4px; }
.admin-visibility-toggle small { color: var(--eko-muted); font-size: 11px; line-height: 1.45; }
.admin-technical-details { margin-bottom: 18px; border: 1px solid var(--eko-line); border-radius: 11px; background: #fff; }
.admin-technical-details > summary { padding: 14px 16px; color: #42516a; cursor: pointer; font-size: 12px; font-weight: 800; }
.admin-technical-details[open] > summary { border-bottom: 1px solid var(--eko-line); }
.technical-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 15px; }
.technical-summary-grid div { display: grid; gap: 4px; padding: 11px; border-radius: 8px; background: #f8faff; }
.admin-update-steps { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(360px,.85fr); gap: 16px; margin-bottom: 18px; }
.admin-step-card { margin: 0; }
.admin-step-title { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 17px; }
.admin-step-title > span { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 50%; color: #fff; background: var(--eko-blue); font-weight: 850; }
.admin-step-title h2 { margin: 0 0 4px; }
.admin-step-title p { margin: 0; color: var(--eko-muted); font-size: 12px; }
.prompt-details { margin: 14px 0 0; }
.prompt-details .prompt-output { width: calc(100% - 28px); margin: 14px; }
.simplified-upload { align-content: start; }
.simplified-history a { grid-template-columns: 46px 1fr auto 20px; }
.simplified-history a em { color: var(--eko-blue); font-style: normal; font-size: 18px; }
.import-section-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.import-section-summary > div { display: grid; gap: 3px; padding: 13px; border: 1px solid var(--eko-line); border-radius: 9px; background: #fafcff; }
.import-section-summary strong { font-size: 13px; }
.import-section-summary span { color: #33405a; font-size: 12px; }
.import-section-summary small { color: var(--eko-muted); font-size: 10px; }
.changes-details { overflow: hidden; }
.changes-details .admin-table-wrap { border-top: 0; }
.simplified-error-table td:last-child { color: #7d231c; font-weight: 650; }

@media (max-width: 1180px) {
  .admin-routine-grid { grid-template-columns: 1fr; }
  .admin-update-steps { grid-template-columns: 1fr; }
  .product-readonly-header { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .import-section-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .eko-admin-sidebar-note { display: none; }
}
@media (max-width: 620px) {
  .admin-metric-grid-simple { grid-template-columns: 1fr; }
  .product-readonly-header, .technical-summary-grid, .import-section-summary { grid-template-columns: 1fr; }
  .simplified-products-table th:nth-child(3), .simplified-products-table td:nth-child(3), .simplified-products-table th:nth-child(5), .simplified-products-table td:nth-child(5) { display: none; }
}

/* Etapa 4: histórico e restauração segura de revisões */
.revision-history-panel { scroll-margin-top: 24px; }
.current-revision-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 20px;
  margin-bottom: 18px;
  border: 1px solid #c9ddff;
  border-radius: 16px;
  background: linear-gradient(135deg, #f5f9ff 0%, #ffffff 100%);
}
.current-revision-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 76px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #e6f7ee;
  color: #137a44;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.current-revision-card small,
.current-revision-card p { color: #68758a; }
.current-revision-card strong { display: block; margin: 3px 0; font-size: 22px; color: #14213d; }
.current-revision-card p { margin: 0; }
.current-revision-metrics {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  max-width: 430px;
}
.current-revision-metrics span {
  padding: 8px 11px;
  border: 1px solid #e1e8f2;
  border-radius: 10px;
  background: #fff;
  color: #526077;
  font-size: 12px;
  white-space: nowrap;
}
.current-revision-metrics b { color: #14213d; }
.revision-history-list { display: grid; gap: 10px; }
.revision-history-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid #e3e9f2;
  border-radius: 14px;
  background: #fff;
}
.revision-history-item.is-current { border-color: #b9d2ff; background: #fbfdff; }
.revision-history-title { display: flex; align-items: center; gap: 10px; }
.revision-history-title > strong { color: #17223d; font-size: 16px; }
.revision-history-main p { margin: 5px 0 9px; color: #657188; }
.revision-history-meta { display: flex; flex-wrap: wrap; gap: 7px; }
.revision-history-meta span {
  padding: 5px 8px;
  border-radius: 8px;
  background: #f3f6fa;
  color: #6c778a;
  font-size: 11px;
}
.admin-status.publicada { background: #e7f7ee; color: #147245; }
.admin-status.arquivada { background: #eef1f5; color: #5e6878; }
.admin-status.rascunho { background: #fff4d8; color: #8b6411; }
.revision-restore-box { min-width: 250px; }
.revision-restore-box > summary {
  cursor: pointer;
  color: #1768e5;
  font-weight: 700;
  text-align: right;
  list-style-position: inside;
}
.revision-restore-box form {
  display: grid;
  gap: 10px;
  padding: 12px;
  margin-top: 10px;
  border: 1px solid #f2cf9c;
  border-radius: 12px;
  background: #fffaf1;
}
.revision-restore-box label { display: grid; gap: 6px; color: #6b5b3c; font-size: 12px; }
.revision-restore-box input {
  width: 100%;
  padding: 9px 10px;
  border: 1px solid #d9c8a9;
  border-radius: 9px;
  background: #fff;
}
.revision-restore-button { border-color: #e0a54d !important; color: #8b5911 !important; background: #fff !important; }
.revision-unavailable { color: #8a94a5; font-size: 12px; }
.revision-note { margin-top: 16px; }
@media (max-width: 900px) {
  .current-revision-card { grid-template-columns: 1fr; }
  .current-revision-badge { justify-self: start; }
  .current-revision-metrics { justify-content: flex-start; max-width: none; }
  .revision-history-item { grid-template-columns: 1fr; }
  .revision-restore-box { min-width: 0; }
  .revision-restore-box > summary { text-align: left; }
}
.ui-alert-warning {
  border: 1px solid #f0cf8b;
  color: #7a5610;
  background: #fff9e9;
}
.proposal-expired-alert { margin: 0 0 18px; }
.field > small { color: #7b879b; font-size: 11px; line-height: 1.35; }

/* Consolidação funcional */
.cart-clear-button {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: #d92d20;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  padding: 5px 7px;
}
.cart-clear-button:hover { text-decoration: underline; }
.cart-clear-button:disabled { opacity: .5; cursor: wait; }
.history-card-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.proposal-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.admin-toolbar-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.admin-pagination { display: flex; justify-content: center; gap: 6px; padding: 16px; border-top: 1px solid #e5eaf2; }
.admin-pagination a,
.admin-pagination span { min-width: 36px; height: 36px; padding: 0 10px; border: 1px solid #d8e0ed; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: #33415c; background: #fff; }
.admin-pagination .active { background: #1F5FD1; border-color: #1F5FD1; color: #fff; font-weight: 700; }
.admin-pagination .disabled { opacity: .45; }
.choice-card.restricted { opacity: .58; cursor: not-allowed; background: #f7f8fa; }
.choice-card.restricted span { color: #667085; }
.choice-card.restricted small { color: #b42318; display: block; margin-top: 3px; }
@media (max-width: 760px) {
  .history-card-actions, .proposal-actions { width: 100%; justify-content: stretch; }
  .history-card-actions .ui-button, .proposal-actions .ui-button { flex: 1 1 140px; }
}


/* Etapa 5 — refinamento visual seguindo os protótipos */
:root {
  --eko-hero: linear-gradient(135deg, #1F5FD1 0%, #2f81ff 60%, #68a5ff 100%);
  --eko-card-shadow: 0 14px 40px rgba(19, 60, 112, .08);
  --eko-soft-shadow: 0 8px 24px rgba(19, 60, 112, .05);
}
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* Login */
.login-page {
  background:
    radial-gradient(circle at 15% 18%, rgba(255, 255, 255, .68), transparent 29%),
    radial-gradient(circle at 86% 12%, rgba(33, 112, 226, .20), transparent 28%),
    linear-gradient(145deg, #d8e9ff 0%, #e7f1ff 45%, #cfe3ff 100%);
}
.login-card {
  border: 1px solid rgba(255,255,255,.75);
  color: var(--eko-ink);
  background: rgba(255,255,255,.86);
  box-shadow: 0 30px 90px rgba(22, 55, 104, .16);
}
.login-page .login-brand span,
.login-page .login-heading p,
.login-page .remember-row small,
.login-page .login-help span { color: #6c7a92; }
.login-page .remember-row { align-items: center; }
.login-page .remember-row input { margin-top: 0; }
.login-page .field input { border-color: #d9e5f5; color: var(--eko-ink); background: #fff; }
.login-page .password-toggle { color: #6d7c95; }
.login-page .alert-error { color: #a11a1a; background: #fff1f1; border-color: #f2b5b5; }
.login-page .alert-warning { color: #8a5b00; background: #fff8e9; border-color: #eed49a; }
.login-card .button-primary { box-shadow: 0 10px 24px rgba(8, 104, 247, .18); }

/* Client header & navigation */
.client-header-shell { position: sticky; top: 0; z-index: 60; backdrop-filter: blur(14px); background: rgba(247,249,252,.94); border-bottom: 1px solid var(--eko-line); }
.client-header { position: static; min-height: 78px; border-bottom: 0; background: transparent; }
.client-brand-copy strong { font-size: 24px; }
.client-brand-copy small { font-size: 12px; }
.client-header-actions { gap: 14px; }
.save-indicator {
  padding: 9px 12px;
  border: 1px solid #dce7f8;
  border-radius: 999px;
  background: #fff;
  box-shadow: var(--eko-soft-shadow);
}
.profile-menu summary {
  box-shadow: 0 10px 25px rgba(31,95,209,.12);
  background: #fff;
}
.profile-menu > div { top: 56px; }
.client-nav-bar {
  width: min(1540px, calc(100% - 32px));
  margin: 0 auto;
  padding: 0 0 12px;
}
.client-nav {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 6px;
  border: 1px solid #dce6f5;
  border-radius: 16px;
  background: rgba(255,255,255,.88);
  box-shadow: var(--eko-soft-shadow);
}
.client-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 12px;
  color: #48607e;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
}
.client-nav-link:hover { background: #f4f8ff; color: var(--eko-blue); }
.client-nav-link.active { color: var(--eko-blue); background: #eef4ff; }
.nav-icon {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
  border-radius: 6px;
  background: #dfeafa;
}
.client-nav-link.active .nav-icon { background: #cfe0ff; }
.nav-icon::before, .nav-icon::after { content: ''; position: absolute; }
.nav-catalogo::before { left: 3px; top: 3px; width: 12px; height: 12px; border: 2px solid #5d7fb8; border-radius: 4px; box-sizing: border-box; }
.nav-catalogo::after { left: 6px; top: 6px; width: 6px; height: 6px; border-radius: 2px; background: #5d7fb8; }
.nav-resumo::before { left: 4px; top: 3px; width: 10px; height: 12px; border: 2px solid #5d7fb8; border-radius: 4px; box-sizing: border-box; }
.nav-resumo::after { left: 6px; top: 7px; width: 6px; height: 2px; background: #5d7fb8; box-shadow: 0 4px 0 #5d7fb8; }
.nav-historico::before { left: 4px; top: 4px; width: 10px; height: 10px; border: 2px solid #5d7fb8; border-radius: 50%; box-sizing: border-box; }
.nav-historico::after { left: 9px; top: 6px; width: 2px; height: 5px; background: #5d7fb8; transform-origin: bottom; box-shadow: -3px 3px 0 0 #5d7fb8; }

/* Client general cards */
.client-shell { margin-top: 16px; }
.region-panel, .config-card, .product-hero-card, .summary-table-card, .summary-settings-card,
.proposal-summary-card, .finalize-form-card, .document-preview-card, .proposal-document,
.catalog-card, .quote-panel, .history-card, .history-list-card, .history-empty, .catalog-empty {
  box-shadow: var(--eko-card-shadow);
}
.section-title-row h1, .page-title-copy h1, .proposal-document h1 { letter-spacing: -.03em; }
.region-panel {
  position: relative;
  overflow: hidden;
  padding: 22px;
  background: linear-gradient(180deg,#ffffff 0%, #fbfdff 100%);
}
.region-panel::after {
  content: '';
  position: absolute;
  right: -30px;
  top: -30px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(31,95,209,.10) 0, rgba(31,95,209,0) 70%);
}
.region-grid { gap: 14px; }
.region-card { min-height: 94px; box-shadow: 0 4px 12px rgba(19,60,112,.04); }
.region-symbol { background: #f3f7ff; border-style: solid; border-color: #d8e6fb; }
.region-card.active { box-shadow: 0 16px 40px rgba(31,95,209,.12); }
.catalog-search label, .admin-search { box-shadow: var(--eko-soft-shadow); }
.catalog-grid { gap: 16px; }
.catalog-card { transition: transform .16s ease, box-shadow .16s ease; }
.catalog-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(19,60,112,.10); }
.catalog-photo { height: 240px; background: linear-gradient(180deg,#f7fafe 0%, #fff 100%); }
.catalog-copy h2 { font-size: 18px; }
.catalog-copy p { min-height: 46px; }
.catalog-badges span { background: #eef4ff; color: #4f6891; }
.catalog-price strong { font-size: 26px; }
.catalog-empty { padding: 48px 22px; }
.catalog-empty span {
  display: grid;
  width: 74px;
  height: 74px;
  margin: 0 auto 10px;
  place-items: center;
  border-radius: 24px;
  background: #eef4ff;
  color: var(--eko-blue);
  font-size: 28px;
}
.ui-button { box-shadow: 0 3px 10px rgba(19,60,112,.04); }
.ui-button-primary { box-shadow: 0 12px 26px rgba(31,95,209,.18); }
.ui-button-small { min-height: 38px; padding: 8px 14px; font-size: 12px; }

/* Quote/cart sidebar */
.quote-panel, .cart-panel {
  border: 1px solid #dbe6f4;
  border-radius: 18px;
  background: linear-gradient(180deg,#ffffff 0%, #fafdff 100%);
  box-shadow: var(--eko-card-shadow);
}
.quote-panel h2, .cart-panel h2 { font-size: 19px; }
.quote-panel .badge, .cart-panel .badge { box-shadow: 0 8px 16px rgba(31,95,209,.18); }

/* Product configuration */
.product-hero-card, .config-card, .summary-table-card, .summary-settings-card, .proposal-summary-card,
.finalize-form-card, .document-preview-card, .proposal-document {
  border-radius: 18px;
  background: linear-gradient(180deg,#fff 0%, #fcfdff 100%);
}
.product-hero-card { overflow: hidden; }
.product-hero-image { background: linear-gradient(180deg,#f6f9ff 0%, #fff 100%); }
.form-section-title { font-size: 17px; }
.option-card, .summary-item, .proposal-item-card { box-shadow: 0 6px 18px rgba(19,60,112,.05); }

/* Admin */
.eko-admin-body { background: linear-gradient(180deg,#f6f9fc 0%, #eef3fa 100%); }
.eko-admin-layout { grid-template-columns: 290px minmax(0,1fr); }
.eko-admin-sidebar {
  border-right: 1px solid #dce5f2;
  background: linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);
}
.eko-admin-logo { min-height: 94px; }
.eko-admin-logo img { width: 68px; height: 58px; }
.eko-admin-sidebar nav { gap: 6px; padding: 18px 12px; }
.eko-admin-sidebar nav a {
  position: relative;
  grid-template-columns: 42px 1fr;
  min-height: 52px;
  padding: 10px 14px;
  border: 1px solid transparent;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 700;
}
.eko-admin-sidebar nav a i {
  position: relative;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: #eef4ff;
  font-size: 0;
}
.eko-admin-sidebar nav a i::before,
.eko-admin-sidebar nav a i::after { content: ''; position: absolute; box-sizing: border-box; }
.eko-admin-sidebar nav a:hover { border-color: #dce6f8; }
.eko-admin-sidebar nav a.active {
  border-color: #d7e4fb;
  box-shadow: 0 12px 24px rgba(31,95,209,.08);
}
.eko-admin-sidebar nav a.active::before { left: -12px; height: 34px; background: var(--eko-blue); }
.eko-admin-sidebar nav a.nav-link-dashboard i::before { left: 8px; top: 8px; width: 20px; height: 20px; border: 2px solid #5f7cb0; border-radius: 6px; }
.eko-admin-sidebar nav a.nav-link-dashboard i::after { left: 14px; top: 14px; width: 8px; height: 8px; border-radius: 2px; background: #5f7cb0; }
.eko-admin-sidebar nav a.nav-link-produtos i::before { left: 7px; top: 8px; width: 22px; height: 18px; border: 2px solid #5f7cb0; border-radius: 5px; }
.eko-admin-sidebar nav a.nav-link-produtos i::after { left: 12px; top: 13px; width: 12px; height: 2px; background: #5f7cb0; box-shadow: 0 5px 0 #5f7cb0; }
.eko-admin-sidebar nav a.nav-link-tabelas i::before { left: 8px; top: 8px; width: 20px; height: 20px; border: 2px solid #5f7cb0; border-radius: 50%; }
.eko-admin-sidebar nav a.nav-link-tabelas i::after { left: 17px; top: 11px; width: 2px; height: 10px; background: #5f7cb0; box-shadow: -4px 4px 0 #5f7cb0; }
.eko-admin-sidebar nav a.nav-link-propostas i::before { left: 8px; top: 7px; width: 20px; height: 22px; border: 2px solid #5f7cb0; border-radius: 6px; }
.eko-admin-sidebar nav a.nav-link-propostas i::after { left: 12px; top: 13px; width: 12px; height: 2px; background: #5f7cb0; box-shadow: 0 5px 0 #5f7cb0, 0 10px 0 #5f7cb0; }
.eko-admin-header {
  min-height: 94px;
  padding: 16px 32px;
  background: rgba(255,255,255,.84);
  backdrop-filter: blur(12px);
}
.eko-admin-header > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 1px solid #dce6f5;
  border-radius: 999px;
  background: #fff;
  box-shadow: var(--eko-soft-shadow);
}
.eko-admin-header > span::before {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #1bb055;
  box-shadow: 0 0 0 3px #e2f6ea;
}
.eko-admin-main { padding: 26px 32px 52px; }
.admin-page-heading h1 { font-size: 30px; }
.admin-page-heading p { max-width: 700px; }
.admin-metric-grid article, .admin-panel, .admin-routine-card {
  border: 1px solid #dce6f5;
  border-radius: 18px;
  box-shadow: var(--eko-card-shadow);
}
.admin-metric-grid article { padding: 18px; background: linear-gradient(180deg,#fff 0%, #fbfdff 100%); }
.metric-icon {
  border-radius: 14px;
  background: #eef4ff;
  box-shadow: inset 0 0 0 1px #d4e3fb;
}
.metric-code { font-size: 20px !important; }
.admin-routine-card {
  align-items: center;
  padding: 18px 20px;
  background: linear-gradient(180deg,#fff 0%, #fbfdff 100%);
  transition: transform .16s ease, box-shadow .16s ease;
}
.admin-routine-card:hover { transform: translateY(-3px); box-shadow: 0 20px 35px rgba(19,60,112,.10); }
.admin-routine-card > span {
  width: 44px; height: 44px; border-radius: 14px; background: var(--eko-hero); color: #fff;
  box-shadow: 0 12px 24px rgba(31,95,209,.22);
}
.admin-routine-card b { font-size: 24px; color: #7d8ba3; }
.admin-guidance-card { background: linear-gradient(135deg, #f7fbff 0%, #ffffff 100%); }
.revision-highlight { border-radius: 14px; box-shadow: inset 0 0 0 1px #dce8fb; }
.movement-cards > div { border: 1px solid #e6edf6; border-radius: 12px; background: #fff; }
.admin-filter-bar { border-radius: 15px; box-shadow: var(--eko-soft-shadow); }
.admin-alert-info { border-color: #dbe6f7; color: #24415f; background: #f7fbff; }
.presentation-ok, .presentation-missing {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
}
.presentation-ok { color: #137241; background: #e0f8e8; }
.presentation-missing { color: #9e2121; background: #ffe4e4; }
.admin-table-footer { background: #fff; }

/* Responsive */
@media (max-width: 1100px) {
  .catalog-layout { grid-template-columns: 1fr; }
  .client-nav { display: flex; width: 100%; overflow-x: auto; }
  .eko-admin-layout { grid-template-columns: 92px minmax(0,1fr); }
  .eko-admin-logo { justify-content: center; padding: 14px 10px; }
  .eko-admin-logo img { width: 54px; height: 48px; }
  .eko-admin-logo > span, .eko-admin-sidebar nav a span, .eko-admin-sidebar-note, .eko-admin-exit { display: none; }
  .eko-admin-sidebar nav a { grid-template-columns: 1fr; justify-items: center; padding: 8px; }
  .eko-admin-sidebar nav a.active::before { left: auto; right: -10px; }
}
@media (max-width: 760px) {
  .client-header { align-items: flex-start; flex-direction: column; gap: 14px; padding-bottom: 6px; }
  .client-header-actions { width: 100%; justify-content: space-between; }
  .client-brand-copy strong { font-size: 20px; }
  .client-brand-copy small { white-space: normal; }
  .client-nav-bar { width: min(100% - 20px, 1540px); padding-bottom: 10px; }
  .client-nav { width: 100%; flex-wrap: nowrap; }
  .client-nav-link { flex: 1 0 auto; justify-content: center; }
  .catalog-grid { grid-template-columns: 1fr; }
  .region-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .catalog-search { flex-direction: column; }
  .admin-dashboard-grid, .admin-routine-grid, .admin-detail-grid, .admin-import-grid { grid-template-columns: 1fr; }
  .admin-filter-bar { grid-template-columns: 1fr; }
  .admin-form-grid.two, .admin-form-grid.three, .admin-association-columns, .admin-cadastro-layout, .admin-edit-layout { grid-template-columns: 1fr; }
  .admin-form-grid .span-two, .admin-form-grid .span-three { grid-column: auto; }
}


/* Validação 1 — gestão administrativa aderente ao protótipo */
.eko-admin-logo img { width: 162px; height: auto; object-fit: contain; }
.eko-admin-logo { align-items: flex-start; padding-top: 22px; }
.eko-admin-logo > span { gap: 4px; font-weight: 700; }
.eko-admin-logo > span small { font-size: 12px; }
.eko-admin-sidebar { justify-content: flex-start; }
.eko-admin-sidebar nav { padding-top: 18px; }
.eko-admin-sidebar nav a { min-height: 50px; border-radius: 12px; font-size: 14px; font-weight: 500; }
.eko-admin-sidebar nav a.active { background: #edf4ff; box-shadow: none; }
.eko-admin-sidebar nav a.active::before { left: -13px; width: 4px; height: 34px; border-radius: 0 6px 6px 0; }
.eko-admin-sidebar nav a i { background: transparent; width: 22px; height: 22px; border-radius: 0; }
.eko-admin-sidebar nav a.active i::before,
.eko-admin-sidebar nav a.active i::after,
.eko-admin-sidebar nav a i::before,
.eko-admin-sidebar nav a i::after { border-color: #667085; background: transparent; }
.eko-admin-sidebar nav a.active i::before,
.eko-admin-sidebar nav a.active i::after { border-color: #1F5FD1; }
.eko-admin-sidebar nav a.active,
.eko-admin-sidebar nav a:hover { color: #1F5FD1; }
.eko-admin-sidebar nav a.active i::before,
.eko-admin-sidebar nav a.active i::after,
.eko-admin-sidebar nav a:hover i::before,
.eko-admin-sidebar nav a:hover i::after { border-color: #1F5FD1; background: transparent; }
.eko-admin-sidebar nav a:hover i::after,
.eko-admin-sidebar nav a.active i::after { box-shadow: none; }
.nav-link-dashboard i::before { left: 2px; top: 3px; width: 18px; height: 16px; border: 2px solid #667085; border-bottom: 0; transform: rotate(45deg) skew(-10deg,-10deg); border-radius: 2px; }
.nav-link-dashboard i::after { left: 6px; bottom: 1px; width: 10px; height: 8px; border: 2px solid #667085; border-top: 0; }
.nav-link-produtos i::before { left: 2px; top: 2px; width: 18px; height: 18px; border: 2px solid #667085; transform: rotate(45deg); border-radius: 4px; }
.nav-link-produtos i::after { display:none; }
.nav-link-regioes i::before { left: 2px; top: 2px; width: 18px; height: 18px; border: 2px solid #667085; border-radius: 50%; }
.nav-link-regioes i::after { left: 10px; top: 2px; width: 2px; height: 18px; background: #667085; box-shadow: -6px 8px 0 -5px #667085, 6px 8px 0 -5px #667085; }
.nav-link-tabelas i::before { left: 3px; top: 2px; width: 16px; height: 18px; border: 2px solid #667085; border-radius: 3px; }
.nav-link-tabelas i::after { left: 7px; top: 6px; width: 8px; height: 2px; background: #667085; box-shadow: 0 5px 0 #667085, 0 10px 0 #667085; }
.nav-link-propostas i::before { left: 3px; top: 2px; width: 16px; height: 18px; border: 2px solid #667085; border-radius: 4px; }
.nav-link-propostas i::after { left: 7px; top: 7px; width: 8px; height: 2px; background: #667085; box-shadow: 0 4px 0 #667085; }
.eko-admin-exit { margin-top: auto; padding: 16px 18px; border-top: 1px solid #e9edf5; color: #1F5FD1; font-size: 14px; font-weight: 500; text-decoration: none; }
.eko-admin-header { justify-content: space-between; background: #fff; }
.eko-admin-header > div strong { font-size: 18px; font-weight: 600; }
.eko-admin-header small { font-size: 14px; color: #667085; }
.eko-admin-header > span { display:none; }
.admin-logout-link { display: inline-flex; align-items: center; gap: 10px; padding: 13px 18px; border: 1px solid #d9e0ea; border-radius: 12px; color: #1F5FD1; text-decoration: none; font-weight: 500; background: #fff; }
.admin-logout-link::before { content: ''; width: 16px; height: 16px; border: 2px solid currentColor; border-left: 0; border-radius: 3px; }
.admin-page-heading.prototype-heading { align-items: center; margin-bottom: 22px; }
.admin-page-heading.prototype-heading h1 { margin: 0; font-size: 42px; font-weight: 700; color: #101828; }
.admin-page-heading.prototype-heading p { display:none; }
.prototype-main-button { min-height: 64px; padding: 0 24px; border-radius: 12px; font-size: 17px; font-weight: 600; }
.plus-icon, .search-icon, .filter-icon { position: relative; display: inline-block; }
.plus-icon { width: 18px; height: 18px; }
.plus-icon::before, .plus-icon::after { content:''; position:absolute; background:#fff; }
.plus-icon::before { left:8px; top:2px; width:2px; height:14px; }
.plus-icon::after { left:2px; top:8px; width:14px; height:2px; }
.prototype-metric-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 22px; margin-bottom: 22px; }
.prototype-metric-grid article { display:flex; align-items:center; gap:20px; min-height:145px; padding:24px; border-radius:20px; box-shadow: 0 2px 12px rgba(16,24,40,.06); }
.prototype-metric-grid article > div { display:grid; gap:3px; }
.prototype-metric-grid small { font-size: 14px; color:#667085; }
.prototype-metric-grid strong { font-size: 46px; line-height:1; color:#101828; }
.prototype-metric-grid span:not(.metric-icon) { font-size: 14px; color:#667085; }
.metric-icon { flex: 0 0 auto; width: 66px; height: 66px; border-radius: 50%; background: #eef4ff; position: relative; }
.metric-icon::before, .metric-icon::after { content:''; position:absolute; box-sizing:border-box; }
.icon-box::before { left:20px; top:18px; width:26px; height:26px; border:3px solid #1F5FD1; transform: rotate(45deg); border-radius:6px; }
.icon-folder::before { left:16px; top:24px; width:34px; height:24px; border:3px solid #1F5FD1; border-radius:6px; }
.icon-folder::after { left:22px; top:18px; width:12px; height:8px; border:3px solid #1F5FD1; border-bottom:0; border-radius:6px 6px 0 0; }
.icon-layers::before { left:18px; top:22px; width:30px; height:18px; border:3px solid #1F5FD1; transform: skewY(-18deg); border-radius:4px; }
.icon-layers::after { left:18px; top:30px; width:30px; height:18px; border:3px solid #1F5FD1; transform: skewY(-18deg); border-radius:4px; }
.icon-globe::before { left:17px; top:17px; width:32px; height:32px; border:3px solid #1F5FD1; border-radius:50%; }
.icon-globe::after { left:31px; top:17px; width:3px; height:32px; background:#1F5FD1; box-shadow: -10px 14px 0 -9px #1F5FD1, 10px 14px 0 -9px #1F5FD1; }
.icon-check-circle::before { left:16px; top:16px; width:34px; height:34px; border:3px solid #1F5FD1; border-radius:50%; }
.icon-check-circle::after { left:25px; top:32px; width:14px; height:7px; border-left:3px solid #1F5FD1; border-bottom:3px solid #1F5FD1; transform: rotate(-45deg); }
.icon-ban-circle::before { left:16px; top:16px; width:34px; height:34px; border:3px solid #1F5FD1; border-radius:50%; }
.icon-ban-circle::after { left:23px; top:31px; width:20px; height:3px; background:#1F5FD1; transform: rotate(-45deg); }
.icon-sort::before { left:22px; top:18px; width:22px; height:3px; background:#1F5FD1; box-shadow: 0 10px 0 #1F5FD1, 0 20px 0 #1F5FD1; }
.prototype-filter-bar { grid-template-columns: minmax(300px,1.2fr) 230px 230px 210px auto; gap: 20px; padding: 22px; margin-bottom: 24px; border-radius: 20px; }
.prototype-filter-bar label > span { font-size: 14px; color:#667085; }
.prototype-filter-bar .admin-search, .prototype-filter-bar select { min-height: 58px; border-radius: 12px; font-size: 16px; }
.prototype-filter-bar .admin-search input { font-size:16px; }
.search-icon { width: 20px; height: 20px; }
.search-icon::before { content:''; position:absolute; left:0; top:0; width:14px; height:14px; border:2px solid #667085; border-radius:50%; }
.search-icon::after { content:''; position:absolute; right:0; bottom:0; width:8px; height:2px; background:#667085; transform: rotate(45deg); transform-origin:right center; }
.filter-icon { width: 18px; height: 18px; }
.filter-icon::before { content:''; position:absolute; left:1px; top:2px; width:16px; height:2px; background:#344054; box-shadow: 0 5px 0 #344054, 0 10px 0 #344054; }
.filter-icon::after { content:''; position:absolute; left:6px; top:0; width:6px; height:6px; border:2px solid #344054; border-top:0; border-left:0; transform: rotate(45deg); }
.prototype-clear-button { min-height: 58px; padding: 0 20px; border-radius: 12px; font-size:16px; }
.prototype-table-panel { border-radius: 20px; }
.prototype-products-table th, .prototype-products-table td { padding: 16px 18px; font-size: 15px; }
.prototype-products-table th { font-size: 13px; text-transform:none; background:#fff; color:#344054; }
.prototype-products-table tr { background:#fff; }
.prototype-products-table tbody tr:hover { background:#fafcff; }
.prototype-thumb { width: 58px; height: 42px; border-radius: 8px; background:#f1f4f8; }
.prototype-status-pill { display:inline-flex; align-items:center; justify-content:center; min-width:66px; min-height:34px; padding:0 14px; border-radius:999px; font-size:14px; font-weight:500; }
.prototype-status-pill.active { background:#dff6e3; color:#1f8a44; }
.prototype-status-pill.inactive { background:#eef0f4; color:#667085; }
.prototype-actions { display:flex; align-items:center; gap:10px; }
.prototype-icon-button { position:relative; display:inline-flex; width:42px; height:42px; align-items:center; justify-content:center; border:1px solid #d0d5dd; border-radius:10px; background:#fff; }
.prototype-icon-button::before, .prototype-icon-button::after { content:''; position:absolute; box-sizing:border-box; }
.prototype-icon-button.icon-edit::before { width:16px; height:3px; background:#1F5FD1; transform: rotate(-45deg); }
.prototype-icon-button.icon-edit::after { width:8px; height:8px; border:2px solid #1F5FD1; border-top:0; border-left:0; transform: rotate(-45deg) translate(3px,-5px); }
.prototype-icon-button.icon-image::before { width:16px; height:12px; border:2px solid #1F5FD1; border-radius:3px; }
.prototype-icon-button.icon-image::after { width:6px; height:6px; border-radius:50%; background:#1F5FD1; transform: translate(4px,-2px); }
.prototype-icon-button.icon-block::before { width:18px; height:18px; border:2px solid #1F5FD1; border-radius:50%; }
.prototype-icon-button.icon-block::after { width:14px; height:2px; background:#1F5FD1; transform: rotate(-45deg); }
.prototype-icon-button.icon-check::before { width:12px; height:7px; border-left:2px solid #1F5FD1; border-bottom:2px solid #1F5FD1; transform: rotate(-45deg); }
.inline-toggle-form { margin:0; }
.prototype-table-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 24px; border-top:1px solid #eaecf0; font-size:14px; color:#667085; background:#fff; }
.prototype-pagination { display:flex; align-items:center; gap:8px; }
.prototype-pagination a, .prototype-pagination span { display:inline-flex; width:38px; height:38px; align-items:center; justify-content:center; border:1px solid #d0d5dd; border-radius:8px; color:#667085; text-decoration:none; background:#fff; }
.prototype-pagination .current { color:#fff; background:#1F5FD1; border-color:#1F5FD1; }
.prototype-pagination .disabled { opacity:.45; }
.prototype-per-page { display:flex; align-items:center; gap:12px; }
.prototype-per-page select { min-height:40px; padding:0 12px; border:1px solid #d0d5dd; border-radius:8px; }
.admin-regions-layout { display:grid; grid-template-columns: minmax(0,1.2fr) 420px; gap:24px; }
.region-form-panel { border-radius:20px; }
.region-form-panel .admin-panel-head { border-bottom:1px solid #eaecf0; }
.region-active-field { min-height:52px; }
.region-form-actions { margin-top: 4px; }
.admin-shortcut-card { display:flex; flex-direction:column; gap:10px; padding:24px; border:1px solid #eaecf0; border-radius:18px; background:#fff; color:inherit; text-decoration:none; box-shadow:0 2px 10px rgba(16,24,40,.04); }
.admin-dashboard-links { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.shortcut-icon { position:relative; width:56px; height:56px; border-radius:16px; background:#eef4ff; display:block; }
.shortcut-icon::before, .shortcut-icon::after { content:''; position:absolute; box-sizing:border-box; }
.shortcut-icon.icon-box::before { left:18px; top:16px; width:20px; height:20px; border:3px solid #1F5FD1; transform:rotate(45deg); border-radius:5px; }
.shortcut-icon.icon-globe::before { left:15px; top:15px; width:26px; height:26px; border:3px solid #1F5FD1; border-radius:50%; }
.shortcut-icon.icon-upload::before { left:26px; top:14px; width:4px; height:18px; background:#1F5FD1; }
.shortcut-icon.icon-upload::after { left:20px; top:24px; width:16px; height:16px; border-left:4px solid #1F5FD1; border-bottom:4px solid #1F5FD1; transform: rotate(-45deg); }
.shortcut-icon.icon-doc::before { left:17px; top:14px; width:22px; height:28px; border:3px solid #1F5FD1; border-radius:6px; }
.shortcut-icon.icon-doc::after { left:23px; top:24px; width:10px; height:3px; background:#1F5FD1; box-shadow: 0 6px 0 #1F5FD1; }
@media (max-width: 1200px) {
  .prototype-filter-bar { grid-template-columns: 1fr 1fr; }
  .admin-dashboard-links, .admin-regions-layout { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
  .prototype-metric-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .prototype-metric-grid { grid-template-columns: 1fr; }
  .prototype-filter-bar { grid-template-columns: 1fr; }
  .prototype-table-footer { flex-direction:column; align-items:flex-start; }
}


/* ===== Admin UX refresh 2026-08-06 ===== */
:root {
  --proto-blue: #1F5FD1;
  --proto-blue-strong: #174BA7;
  --proto-text: #101828;
  --proto-muted: #667085;
  --proto-line: #e4e7ec;
  --proto-bg: #f6f8fb;
  --proto-white: #ffffff;
  --proto-shadow: 0 2px 14px rgba(16,24,40,.06);
}
.prototype-admin-layout { grid-template-columns: 244px minmax(0,1fr); background: var(--proto-bg); }
.prototype-sidebar { padding: 22px 10px 22px 10px; border-right:1px solid var(--proto-line); background:#fff; }
.prototype-sidebar-logo { display:flex; justify-content:center; align-items:center; padding: 0 0 26px; }
.prototype-sidebar-logo img { width: 152px; height: auto; object-fit: contain; }
.prototype-sidebar-nav { display:grid; gap:8px; }
.prototype-sidebar-nav a { display:flex; align-items:center; gap:14px; min-height:50px; padding:0 16px; border-radius:12px; color:#344054; text-decoration:none; font-size:14px; font-weight:500; position:relative; }
.prototype-sidebar-nav a i { font-size: 21px; color:#667085; }
.prototype-sidebar-nav a.active { background:#eef4ff; color:var(--proto-blue); }
.prototype-sidebar-nav a.active i, .prototype-sidebar-nav a:hover i { color:var(--proto-blue); }
.prototype-sidebar-nav a.active::before { content:''; position:absolute; left:-10px; top:8px; bottom:8px; width:4px; border-radius:0 6px 6px 0; background:var(--proto-blue); }
.prototype-admin-content { background: var(--proto-bg); }
.prototype-topbar { display:flex; align-items:center; justify-content:space-between; padding:22px 34px 18px; background:#fff; border-bottom:1px solid var(--proto-line); }
.prototype-topbar-brand { padding-left: 2px; }
.prototype-topbar-brand strong { display:block; color:var(--proto-text); font-size:22px; font-weight:700; }
.prototype-topbar-brand small { color:var(--proto-muted); font-size:14px; }
.prototype-logout { display:inline-flex; align-items:center; gap:10px; min-height:46px; padding:0 18px; border:1px solid #d0d5dd; border-radius:12px; background:#fff; color:var(--proto-blue); text-decoration:none; font-weight:700; }
.prototype-admin-main { padding: 28px 34px 34px; }
.prototype-page-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; }
.prototype-page-head h1 { margin:0; font-size:42px; line-height:1.05; color:var(--proto-text); font-weight:700; }
.prototype-page-head p { margin:6px 0 0; color:var(--proto-muted); font-size:15px; }
.prototype-primary-btn, .prototype-secondary-btn, .prototype-file-btn, .prototype-file-btn-inline { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:0 20px; border-radius:12px; text-decoration:none; border:1px solid transparent; font-weight:600; cursor:pointer; }
.prototype-primary-btn { background:linear-gradient(180deg,#3d7af9,#1F5FD1); color:#fff; box-shadow: var(--proto-shadow); }
.prototype-secondary-btn, .prototype-file-btn-inline { background:#fff; color:#344054; border-color:#d0d5dd; }
.prototype-head-actions { display:flex; gap:12px; }
.prototype-stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-bottom:22px; }
.prototype-stats-grid-compact { margin-bottom:22px; }
.prototype-stats-grid article { display:flex; align-items:center; gap:18px; min-height:136px; padding:24px; border:1px solid var(--proto-line); border-radius:20px; background:#fff; box-shadow: var(--proto-shadow); }
.prototype-stat-icon { width:64px; height:64px; border-radius:50%; background:#eef4ff; display:inline-flex; align-items:center; justify-content:center; color:var(--proto-blue); font-size:28px; flex:0 0 auto; }
.prototype-stat-icon.small { width:48px; height:48px; font-size:20px; }
.prototype-stats-grid small { display:block; color:var(--proto-muted); font-size:14px; }
.prototype-stats-grid strong { display:block; color:var(--proto-text); font-size:40px; line-height:1.05; margin:2px 0; }
.prototype-stats-grid span:not(.prototype-stat-icon) { color:var(--proto-muted); font-size:14px; }
.prototype-filters-grid { display:grid; grid-template-columns:minmax(300px,1.3fr) repeat(3,minmax(180px,.6fr)) auto; gap:18px; padding:20px; border:1px solid var(--proto-line); border-radius:20px; background:#fff; box-shadow: var(--proto-shadow); margin-bottom:24px; }
.prototype-filters-grid label { display:grid; gap:8px; }
.prototype-filters-grid label > span { color:var(--proto-muted); font-size:13px; }
.prototype-filters-grid select, .prototype-filters-grid input, .prototype-form-grid input, .prototype-form-grid select, .prototype-form-grid textarea, .prototype-modal-form input, .prototype-modal-form textarea, .prototype-modal-form select, .prototype-prompt-output { width:100%; min-height:54px; border:1px solid #d0d5dd; border-radius:12px; padding:0 16px; background:#fff; color:#101828; font-size:15px; }
.prototype-form-grid textarea, .prototype-modal-form textarea, .prototype-prompt-output { padding:14px 16px; min-height:auto; }
.prototype-search-box { position:relative; }
.prototype-search-box i { position:absolute; left:16px; top:18px; color:#667085; font-size:20px; }
.prototype-search-box input { padding-left:46px; }
.prototype-table-card, .prototype-side-card, .prototype-form-card, .prototype-upload-card { border:1px solid var(--proto-line); border-radius:20px; background:#fff; box-shadow: var(--proto-shadow); }
.prototype-admin-table { width:100%; border-collapse:collapse; }
.prototype-admin-table th, .prototype-admin-table td { padding:16px 18px; text-align:left; border-bottom:1px solid #eaecf0; font-size:15px; vertical-align:middle; }
.prototype-admin-table th { color:#344054; font-size:13px; font-weight:600; }
.prototype-admin-table tbody tr:hover { background:#fafcff; }
.prototype-thumb { width:58px; height:42px; border-radius:8px; background:#f2f4f7; display:flex; align-items:center; justify-content:center; overflow:hidden; color:#98a2b3; }
.prototype-thumb-square { width:52px; height:52px; }
.prototype-thumb img { width:100%; height:100%; object-fit:cover; }
.prototype-badge { display:inline-flex; align-items:center; justify-content:center; padding:7px 14px; border-radius:999px; background:#eef2ff; color:#344054; font-size:14px; font-weight:600; }
.prototype-badge.is-active { background:#dff6e3; color:#1f8a44; }
.prototype-badge.is-inactive { background:#eef0f4; color:#667085; }
.prototype-action-row { display:flex; gap:10px; align-items:center; }
.prototype-icon-btn { width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #d0d5dd; border-radius:10px; color:var(--proto-blue); background:#fff; text-decoration:none; cursor:pointer; }
.prototype-icon-btn i { font-size:18px; }
.prototype-table-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; color:var(--proto-muted); font-size:14px; }
.prototype-pagination { display:flex; align-items:center; gap:8px; }
.prototype-pagination a, .prototype-pagination span { width:38px; height:38px; border:1px solid #d0d5dd; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; color:#667085; background:#fff; }
.prototype-pagination .current { background:var(--proto-blue); border-color:var(--proto-blue); color:#fff; }
.prototype-pagination .disabled { opacity:.45; }
.prototype-per-page { display:flex; align-items:center; gap:10px; }
.prototype-per-page select { min-height:40px; border:1px solid #d0d5dd; border-radius:8px; padding:0 10px; }
.prototype-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-bottom:24px; }
.prototype-shortcuts a { display:flex; flex-direction:column; gap:12px; padding:22px; border:1px solid var(--proto-line); border-radius:18px; background:#fff; color:inherit; text-decoration:none; box-shadow: var(--proto-shadow); }
.prototype-shortcuts a i { width:52px; height:52px; border-radius:16px; background:#eef4ff; color:var(--proto-blue); display:flex; align-items:center; justify-content:center; font-size:22px; }
.prototype-shortcuts small { color:var(--proto-muted); }
.prototype-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:20px 22px 0; }
.prototype-card-head h2 { margin:0; font-size:20px; color:var(--proto-text); }
.prototype-card-head a { color:var(--proto-blue); text-decoration:none; font-weight:600; }
.prototype-import-grid { display:grid; grid-template-columns:minmax(0,1.1fr) 420px; gap:24px; margin-bottom:24px; }
.prototype-import-grid.bottom { align-items:start; }
.prototype-upload-card-inner { min-height:280px; border:2px dashed #bfd0ff; border-radius:18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:28px; text-align:center; }
.prototype-upload-card-inner > i { font-size:56px; color:var(--proto-blue); }
.prototype-upload-card-inner h2 { margin:0; font-size:18px; color:var(--proto-text); }
.prototype-upload-card-inner p, .prototype-upload-caption { margin:0; color:var(--proto-muted); }
.prototype-upload-card-inner small { color:var(--proto-muted); }
.prototype-upload-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:6px; }
.prototype-file-btn-inline input, .prototype-file-btn input { display:none; }
.prototype-prompt-box { margin:18px; padding:18px; border-top:1px solid var(--proto-line); }
.prototype-prompt-box summary { cursor:pointer; font-weight:700; color:var(--proto-text); }
.prototype-prompt-output { margin-top:14px; min-height:260px; resize:vertical; }
.prototype-revisions-list, .prototype-alerts-list { display:grid; gap:0; padding:12px 18px 18px; }
.prototype-revision-item, .prototype-alert-item { display:flex; align-items:flex-start; gap:14px; padding:14px 0; border-bottom:1px solid #eaecf0; }
.prototype-revision-item:last-child, .prototype-alert-item:last-child { border-bottom:0; }
.prototype-revision-item.is-current { background:#f8fbff; border:1px solid #dbe6ff; border-radius:16px; padding:14px; }
.prototype-revision-item > div:first-of-type { display:grid; gap:4px; flex:1; }
.prototype-revision-item strong, .prototype-alert-item strong { color:var(--proto-text); }
.prototype-revision-item small, .prototype-alert-item small { color:var(--proto-muted); }
.prototype-revision-meta { display:grid; gap:8px; justify-items:end; }
.prototype-publish-bar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 22px; border:1px solid #dbe6ff; border-radius:16px; background:#f8fbff; margin-bottom:22px; }
.prototype-publish-bar strong { display:block; color:var(--proto-text); }
.prototype-publish-bar small { color:var(--proto-muted); }
.prototype-edit-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:24px; }
.prototype-edit-main { display:grid; gap:20px; }
.prototype-edit-side { display:grid; gap:20px; }
.prototype-tabs { display:flex; gap:28px; margin:0 0 20px; padding:0 6px 12px; border-bottom:1px solid var(--proto-line); }
.prototype-tabs a { color:#475467; text-decoration:none; font-weight:500; padding-bottom:10px; }
.prototype-tabs a.active { color:var(--proto-blue); border-bottom:3px solid var(--proto-blue); }
.prototype-form-card { padding:20px; }
.prototype-form-grid { display:grid; gap:16px; }
.prototype-form-grid.one { grid-template-columns:1fr; }
.prototype-form-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.prototype-form-grid.four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.prototype-form-grid .span-two { grid-column:span 2; }
.prototype-form-grid label, .prototype-modal-form label { display:grid; gap:8px; }
.prototype-form-grid label span, .prototype-modal-form label span { color:#344054; font-size:14px; font-weight:500; }
.prototype-switch-field { display:flex !important; align-items:center; gap:12px; align-self:end; min-height:54px; }
.prototype-switch-field input { width:46px; min-height:auto; height:26px; accent-color:var(--proto-blue); }
.prototype-photo-area { display:grid; grid-template-columns:240px 1fr; gap:18px; align-items:start; }
.prototype-photo-preview, .prototype-upload-preview { min-height:180px; border:2px dashed #bfd0ff; border-radius:18px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#fbfcff; color:var(--proto-blue); font-size:42px; }
.prototype-photo-preview img, .prototype-upload-preview img { width:100%; height:100%; object-fit:cover; }
.prototype-upload-fields { display:grid; gap:12px; }
.prototype-file-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:max-content; min-height:46px; padding:0 18px; border:1px solid #d0d5dd; border-radius:12px; cursor:pointer; }
.prototype-checkbox-inline { display:flex !important; align-items:center; gap:10px; color:#344054; }
.prototype-summary-list { display:grid; gap:16px; padding:16px 22px 22px; }
.prototype-summary-list div { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#344054; }
.prototype-summary-list span { color:var(--proto-muted); }
.prototype-modal { position:fixed; inset:0; display:none; z-index:1000; }
.prototype-modal.is-open { display:block; }
.prototype-modal-backdrop { position:absolute; inset:0; background:rgba(16,24,40,.45); }
.prototype-modal-dialog { position:relative; width:min(760px, calc(100vw - 32px)); margin:50px auto; background:#fff; border-radius:22px; box-shadow:0 24px 48px rgba(16,24,40,.18); overflow:hidden; }
.prototype-modal-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:22px 24px 16px; border-bottom:1px solid var(--proto-line); }
.prototype-modal-header h2 { margin:0; font-size:26px; color:var(--proto-text); }
.prototype-modal-header small { color:var(--proto-muted); }
.prototype-modal-close { width:40px; height:40px; border:1px solid #d0d5dd; border-radius:10px; background:#fff; color:#475467; cursor:pointer; }
.prototype-modal-form { padding:22px 24px 24px; }
.prototype-upload-box { display:grid; grid-template-columns:180px 1fr; gap:18px; margin-top:18px; }
.prototype-modal-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:20px; }
.prototype-region-table .dragging { opacity:.45; }
.drag-handle { width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; border:0; background:transparent; color:#667085; cursor:grab; }
.drag-handle i { font-size:18px; }
.table-empty { text-align:center; color:var(--proto-muted); }
@media (max-width: 1300px) {
  .prototype-import-grid, .prototype-edit-layout, .prototype-shortcuts { grid-template-columns:1fr; }
}
@media (max-width: 1100px) {
  .prototype-stats-grid, .prototype-filters-grid, .prototype-form-grid.four { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .prototype-photo-area, .prototype-upload-box { grid-template-columns:1fr; }
}
@media (max-width: 820px) {
  .prototype-admin-layout { grid-template-columns:1fr; }
  .prototype-sidebar { border-right:0; border-bottom:1px solid var(--proto-line); }
  .prototype-sidebar-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .prototype-topbar, .prototype-page-head, .prototype-table-footer { flex-direction:column; align-items:flex-start; }
  .prototype-admin-main { padding:20px; }
  .prototype-stats-grid, .prototype-filters-grid, .prototype-form-grid.two, .prototype-form-grid.four { grid-template-columns:1fr; }
}

/* Validação 3 — dashboard com gráfico e ícones locais */
.regions-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prototype-chart-card {
  margin-bottom: 24px;
  padding: 22px;
  border: 1px solid var(--proto-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--proto-shadow);
}
.prototype-chart-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}
.prototype-chart-head h2 { margin: 0; color: var(--proto-text); font-size: 22px; }
.prototype-chart-head p { margin: 6px 0 0; color: var(--proto-muted); font-size: 14px; }
.prototype-period-buttons { display: inline-flex; gap: 8px; padding: 5px; border: 1px solid var(--proto-line); border-radius: 12px; background: #f8faff; }
.prototype-period-buttons a { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border-radius: 8px; color: #475467; text-decoration: none; font-size: 13px; font-weight: 600; }
.prototype-period-buttons a.active { color: #fff; background: var(--proto-blue); }
.prototype-chart-date-form { display: grid; grid-template-columns: 190px 190px auto; align-items: end; gap: 12px; margin-bottom: 16px; }
.prototype-chart-date-form label { display: grid; gap: 6px; }
.prototype-chart-date-form label span { color: var(--proto-muted); font-size: 12px; }
.prototype-chart-date-form input { min-height: 44px; padding: 0 12px; border: 1px solid #d0d5dd; border-radius: 10px; color: var(--proto-text); background: #fff; }
.prototype-chart-notice { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; padding: 10px 12px; border-radius: 10px; color: #344054; background: #f5f8ff; font-size: 13px; }
.prototype-chart-notice i { color: var(--proto-blue); }
.prototype-chart-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 8px; }
.prototype-chart-summary > div { padding: 12px 14px; border: 1px solid #eaecf0; border-radius: 12px; background: #fbfcff; }
.prototype-chart-summary small { display: block; color: var(--proto-muted); font-size: 12px; }
.prototype-chart-summary strong { display: block; margin-top: 3px; color: var(--proto-text); font-size: 22px; }
.prototype-line-chart { width: 100%; min-height: 330px; overflow-x: auto; }
.prototype-line-chart svg { width: 100%; min-width: 720px; height: 330px; overflow: visible; }
.chart-grid-line { stroke: #e9edf5; stroke-width: 1; }
.chart-axis-label { fill: #7a8699; font-size: 12px; font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.chart-area { fill: url(#quoteChartArea); }
.chart-line { fill: none; stroke: #1F5FD1; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.chart-point { fill: #fff; stroke: #1F5FD1; stroke-width: 3; cursor: pointer; }
.chart-point:hover { fill: #1F5FD1; }
@media (max-width: 900px) {
  .prototype-chart-head { flex-direction: column; }
  .prototype-chart-date-form { grid-template-columns: 1fr 1fr; }
  .prototype-chart-date-form .prototype-secondary-btn { grid-column: span 2; }
  .regions-metric-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .prototype-chart-date-form, .prototype-chart-summary { grid-template-columns: 1fr; }
  .prototype-chart-date-form .prototype-secondary-btn { grid-column: auto; }
  .prototype-period-buttons { width: 100%; }
  .prototype-period-buttons a { flex: 1; }
}


/* Validação 4 — gráfico fluido e ícones completos */
.prototype-chart-card { position: relative; overflow: hidden; padding: 26px; }
.prototype-chart-eyebrow { display:block; margin-bottom:6px; color:var(--proto-blue); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.prototype-period-buttons button { min-height:36px; display:inline-flex; align-items:center; justify-content:center; padding:0 14px; border:0; border-radius:8px; color:#475467; background:transparent; font-size:13px; font-weight:600; cursor:pointer; }
.prototype-period-buttons button.active { color:#fff; background:var(--proto-blue); box-shadow:0 6px 14px rgba(31,95,209,.18); }
.prototype-chart-summary { margin: 6px 0 16px; }
.prototype-chart-summary > div { display:flex; align-items:center; gap:12px; min-height:72px; padding:12px 16px; background:linear-gradient(180deg,#fff,#fbfcff); }
.chart-summary-icon { width:40px; height:40px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; color:var(--proto-blue); background:#edf4ff; }
.chart-summary-icon .bi { width:20px; height:20px; }
.prototype-line-chart { min-height:310px; overflow:hidden; border-top:1px solid #f0f2f5; padding-top:8px; }
.prototype-line-chart svg { display:block; width:100%; min-width:680px; height:310px; }
.chart-grid-line { stroke:#edf1f7; stroke-width:1; stroke-dasharray:3 5; }
.chart-axis-label { fill:#8490a3; font-size:11px; font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.chart-area { fill:url(#quoteChartArea); }
.chart-line { fill:none; stroke:#1F5FD1; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 4px 5px rgba(31,95,209,.14)); stroke-dasharray:1600; stroke-dashoffset:1600; animation:chartLineDraw .65s ease forwards; }
.chart-point { fill:#fff; stroke:#1F5FD1; stroke-width:3; cursor:pointer; filter:url(#pointGlow); transition:r .15s ease, fill .15s ease; }
.chart-point:hover,.chart-point:focus { r:7; fill:#1F5FD1; outline:none; }
.chart-empty-label { fill:#98a2b3; font-size:14px; font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.prototype-chart-tooltip { position:absolute; z-index:5; min-width:130px; padding:10px 12px; border-radius:10px; color:#fff; background:#101828; box-shadow:0 10px 24px rgba(16,24,40,.22); transform:translate(-50%,-100%); pointer-events:none; }
.prototype-chart-tooltip strong,.prototype-chart-tooltip span { display:block; }
.prototype-chart-tooltip strong { font-size:13px; }
.prototype-chart-tooltip span { margin-top:2px; color:#d0d5dd; font-size:11px; }
.prototype-chart-loading { position:absolute; inset:0; z-index:10; display:flex; align-items:center; justify-content:center; gap:12px; color:#344054; background:rgba(255,255,255,.72); backdrop-filter:blur(2px); }
.prototype-chart-loading[hidden] { display:none; }
.prototype-chart-loading span { width:22px; height:22px; border:3px solid #dbe6ff; border-top-color:var(--proto-blue); border-radius:50%; animation:chartSpin .7s linear infinite; }
.prototype-chart-card.is-loading .prototype-line-chart { opacity:.5; }
@keyframes chartLineDraw { to { stroke-dashoffset:0; } }
@keyframes chartSpin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .chart-line,.prototype-chart-loading span { animation:none; stroke-dashoffset:0; } }

/* ===== Auditoria geral da gestão — 2026-08-06 ===== */
.prototype-badge.is-warning { color:#945f00; background:#fff2cc; }
.prototype-badge.is-danger { color:#b42318; background:#fee4e2; }
.prototype-badge.is-neutral { color:#475467; background:#f2f4f7; }
.prototype-admin-table td small { display:block; margin-top:4px; color:var(--proto-muted); font-size:12px; line-height:1.4; }
.prototype-admin-table td strong { color:var(--proto-text); }
.prototype-table-link { color:var(--proto-blue); font-weight:700; text-decoration:none; }
.prototype-table-link:hover { text-decoration:underline; }
.prototype-icon-btn:hover, .prototype-icon-btn:focus-visible,
.prototype-secondary-btn:hover, .prototype-secondary-btn:focus-visible,
.prototype-file-btn:hover, .prototype-file-btn:focus-within,
.prototype-file-btn-inline:hover, .prototype-file-btn-inline:focus-within,
.prototype-logout:hover, .prototype-logout:focus-visible {
  border-color:#98b7f8;
  color:var(--proto-blue-strong);
  background:#f8fbff;
  outline:none;
}
.prototype-primary-btn:hover, .prototype-primary-btn:focus-visible { background:#174BA7; outline:3px solid rgba(31,95,209,.16); outline-offset:2px; }
.prototype-icon-btn:focus-visible, .prototype-pagination a:focus-visible, .prototype-sidebar-nav a:focus-visible { outline:3px solid rgba(31,95,209,.16); outline-offset:2px; }
.inline-toggle-form { margin:0; }

#productTableResult, #proposalTableResult { position:relative; min-height:80px; transition:opacity .16s ease; }
#productTableResult.is-loading, #proposalTableResult.is-loading { opacity:.54; pointer-events:none; }
#productTableResult.is-loading::after, #proposalTableResult.is-loading::after {
  content:''; position:absolute; top:18px; right:18px; width:24px; height:24px;
  border:3px solid #dbe6ff; border-top-color:var(--proto-blue); border-radius:50%; animation:chartSpin .7s linear infinite;
}
.prototype-proposal-filters { grid-template-columns:minmax(320px,1.35fr) minmax(190px,.65fr) minmax(190px,.65fr) auto; }

.prototype-detail-status-bar {
  display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px;
  padding:16px 20px; border:1px solid var(--proto-line); border-radius:16px; background:#fff; box-shadow:var(--proto-shadow);
}
.prototype-detail-status-bar > div { display:grid; gap:3px; }
.prototype-detail-status-bar small { color:var(--proto-muted); }
.prototype-detail-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr); gap:22px; margin-bottom:22px; }
.prototype-detail-grid > div, .prototype-detail-grid > aside { display:grid; gap:20px; align-content:start; }
.prototype-financial-summary { display:grid; gap:13px; padding:16px 22px 22px; }
.prototype-financial-summary > div { display:flex; justify-content:space-between; gap:14px; padding-bottom:11px; border-bottom:1px solid #eaecf0; }
.prototype-financial-summary > div:last-child { border-bottom:0; }
.prototype-financial-summary span { color:var(--proto-muted); }
.prototype-financial-summary .is-total { margin-top:4px; padding-top:12px; color:var(--proto-blue); font-size:18px; font-weight:800; }
.prototype-financial-summary .is-total span { color:var(--proto-text); }
.prototype-items-table td { vertical-align:top; }
.prototype-items-table td small { max-width:520px; }
.prototype-observation-card { padding-bottom:20px; }
.prototype-observation-card p { margin:12px 22px 0; color:#344054; line-height:1.65; white-space:pre-wrap; }

.region-list-head { padding-bottom:18px; }
.region-list-head small { display:block; margin-top:5px; color:var(--proto-muted); font-size:13px; font-weight:400; }
.region-order-state { display:inline-flex; align-items:center; gap:7px; min-height:32px; padding:0 11px; border-radius:999px; font-size:12px; font-weight:700; }
.region-order-state.is-loading { color:#475467; background:#f2f4f7; }
.region-order-state.is-success { color:#147a3f; background:#dcfae6; }
.region-order-state.is-error { color:#b42318; background:#fee4e2; }
.prototype-region-table tr[data-id] { transition:transform .12s ease, opacity .12s ease, background .12s ease; }
.prototype-region-table tr[data-id].dragging { opacity:.42; background:#eef4ff; }
.drag-handle { touch-action:none; }
.drag-handle:active { cursor:grabbing; }
body.modal-open { overflow:hidden; }
.prototype-modal { overflow-y:auto; padding:24px 0; }
.prototype-modal-dialog { margin:0 auto; max-height:calc(100vh - 48px); overflow:auto; }
.prototype-modal-form input[readonly] { color:#667085; background:#f9fafb; }
.prototype-upload-preview img { object-fit:contain; background:#fff; }

.prototype-filter-error {
  margin:0 0 16px; padding:12px 14px; border:1px solid #fecdca; border-radius:12px;
  color:#b42318; background:#fff5f4; font-size:13px;
}

@media (max-width: 1200px) {
  .prototype-proposal-filters { grid-template-columns:1fr 1fr; }
  .prototype-detail-grid { grid-template-columns:1fr; }
}
@media (max-width: 760px) {
  .prototype-proposal-filters { grid-template-columns:1fr; }
  .prototype-detail-status-bar { align-items:flex-start; flex-direction:column; }
  .prototype-head-actions { width:100%; flex-direction:column; }
  .prototype-head-actions > * { width:100%; }
  .prototype-modal { padding:10px 0; }
  .prototype-modal-dialog { width:calc(100vw - 20px); max-height:calc(100vh - 20px); }
}
.region-symbol.has-image { width:72px; height:60px; padding:4px; border:0; border-radius:12px; background:#f7f9fc; }
.region-symbol.has-image img { width:100%; height:100%; object-fit:contain; }
.region-card.active .region-symbol.has-image { background:#fff; box-shadow:inset 0 0 0 1px #d8e6fb; }

/* ===== Editor de imagens: enquadramento, zoom e compressão ===== */
.eko-image-editor { position: fixed; inset: 0; z-index: 2200; display: none; }
.eko-image-editor.is-open { display: block; }
.eko-image-editor__backdrop { position: absolute; inset: 0; background: rgba(16,24,40,.62); backdrop-filter: blur(3px); }
.eko-image-editor__dialog { position: relative; width: min(1040px, calc(100vw - 32px)); max-height: calc(100vh - 32px); margin: 16px auto; overflow: auto; border-radius: 22px; background: #fff; box-shadow: 0 30px 70px rgba(16,24,40,.28); }
.eko-image-editor__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px 24px 18px; border-bottom: 1px solid #eaecf0; }
.eko-image-editor__header h2 { margin: 0; color: #101828; font-size: 24px; }
.eko-image-editor__header p { margin: 5px 0 0; color: #667085; font-size: 14px; }
.eko-image-editor__close { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border: 1px solid #d0d5dd; border-radius: 11px; color: #475467; background: #fff; font-size: 27px; line-height: 1; cursor: pointer; }
.eko-image-editor__body { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 22px; padding: 22px 24px; }
.eko-image-editor__stage { position: relative; display: grid; min-height: 460px; place-items: center; overflow: hidden; border: 1px solid #d9e2f0; border-radius: 18px; background: #f5f7fb; }
.eko-image-editor__stage canvas { display: block; width: min(100%, 720px); height: auto; max-height: 65vh; border-radius: 10px; box-shadow: 0 12px 28px rgba(16,24,40,.12); cursor: grab; touch-action: none; user-select: none; }
.eko-image-editor__stage canvas.is-dragging { cursor: grabbing; }
.eko-image-editor__hint { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); padding: 7px 11px; border-radius: 999px; color: #475467; background: rgba(255,255,255,.9); box-shadow: 0 4px 12px rgba(16,24,40,.08); font-size: 12px; pointer-events: none; }
.eko-image-editor__controls { display: grid; align-content: start; gap: 18px; }
.eko-image-editor__controls > label { display: grid; gap: 10px; color: #344054; font-size: 13px; font-weight: 600; }
.eko-image-editor__zoom-row { display: grid; grid-template-columns: 40px 1fr 40px; align-items: center; gap: 8px; }
.eko-image-editor__zoom-row button { width: 40px; height: 40px; border: 1px solid #d0d5dd; border-radius: 10px; color: #174BA7; background: #fff; font-size: 22px; cursor: pointer; }
.eko-image-editor__zoom-row input[type="range"] { width: 100%; accent-color: #1F5FD1; }
.eko-image-editor__reset { width: 100%; }
.eko-image-editor__info { display: grid; gap: 6px; padding: 15px; border: 1px solid #dbe6ff; border-radius: 14px; background: #f8fbff; }
.eko-image-editor__info strong { color: #101828; font-size: 13px; }
.eko-image-editor__info span { color: #174BA7; font-size: 13px; font-weight: 600; }
.eko-image-editor__info small { color: #667085; line-height: 1.45; }
.eko-image-editor__footer { display: flex; justify-content: flex-end; gap: 12px; padding: 18px 24px 22px; border-top: 1px solid #eaecf0; }
.image-adjust-current { width: max-content; }
.prototype-upload-fields .image-adjust-current { justify-self: start; }
@media (max-width: 820px) {
  .eko-image-editor__body { grid-template-columns: 1fr; }
  .eko-image-editor__stage { min-height: 300px; }
  .eko-image-editor__dialog { width: min(100vw - 16px, 1040px); margin: 8px auto; max-height: calc(100vh - 16px); }
}


/* Imagens v2 — visualização integral e controles de enquadramento */
.prototype-thumb img { object-fit: contain !important; padding: 2px; background: #fff; }
.prototype-photo-preview img, .prototype-upload-preview img { object-fit: contain !important; background: #fff; }
.eko-image-editor__fit-control { display: grid; gap: 9px; color: #344054; font-size: 13px; font-weight: 600; }
.eko-image-editor__segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 4px; border: 1px solid #d0d5dd; border-radius: 11px; background: #f8fafc; }
.eko-image-editor__segmented button { min-height: 38px; padding: 7px 9px; border: 0; border-radius: 8px; color: #475467; background: transparent; font-size: 12px; font-weight: 650; cursor: pointer; }
.eko-image-editor__segmented button.active { color: #174BA7; background: #fff; box-shadow: 0 2px 8px rgba(16,24,40,.08); }


/* Correção da prévia temporária após enquadramento */
.eko-image-ready-preview {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  background: #fff;
}
.prototype-photo-preview .eko-image-ready-preview,
.prototype-upload-preview .eko-image-ready-preview {
  width: 100%;
  height: 100%;
}


/* Imagem: remoção por botão X sobre a prévia */
.image-preview-wrap { position: relative; min-width: 0; }
.image-preview-wrap > .prototype-photo-preview,
.image-preview-wrap > .prototype-upload-preview { width: 100%; }
.image-remove-x {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 5;
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(180,35,24,.20);
  border-radius: 50%;
  color: #b42318;
  background: rgba(255,255,255,.96);
  box-shadow: 0 6px 18px rgba(16,24,40,.16);
  font-size: 24px;
  line-height: 1;
  font-weight: 500;
  cursor: pointer;
  transition: transform .14s ease, background .14s ease, color .14s ease;
}
.image-remove-x:hover { color: #fff; background: #d92d20; transform: scale(1.05); }
.image-remove-x:focus-visible { outline: 3px solid rgba(217,45,32,.22); outline-offset: 2px; }
.image-remove-x[hidden] { display: none !important; }
.region-image-preview-wrap { width: 100%; }


/* region selector cards - 2026-08-07 */
.region-grid-cards { gap: 18px; }
.region-card-select {
  min-height: 122px;
  justify-content: flex-start;
  padding: 18px 22px;
  border-radius: 14px;
  gap: 16px;
  box-shadow: 0 2px 10px rgba(16,24,40,.03);
}
.region-card-select .region-figure-wrap {
  display:flex;
  align-items:center;
  justify-content:center;
  width: 120px;
  min-width: 120px;
}
.region-card-select .region-symbol {
  width: 92px;
  height: 72px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}
.region-card-select .region-symbol.has-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: grayscale(1) contrast(.9) brightness(.95);
  opacity: .78;
}
.region-card-select.active .region-symbol.has-image img {
  filter: none;
  opacity: 1;
}
.region-card-select .region-symbol.fallback {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: #eef4ff;
  color: #98a2b3;
}
.region-fallback-map { font-size: 28px; line-height: 1; }
.region-card-select .region-label {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex:1;
  min-width: 0;
  color: #101828;
  font-size: 16px;
  font-weight: 700;
}
.region-card-select:hover { border-color: #bfd2f9; transform: translateY(-1px); }
.region-card-select.active {
  border: 2px solid var(--eko-blue);
  background: linear-gradient(180deg,#f9fcff 0%,#eef5ff 100%);
  box-shadow: 0 10px 28px rgba(31,95,209,.08);
}
.region-card-select.active .region-label { color: var(--eko-blue); }
.region-card-select .region-check {
  top: 12px;
  right: 12px;
  width: 28px;
  height: 28px;
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 4px 10px rgba(31,95,209,.18);
}
.region-help-note {
  margin: 14px 4px 0;
  color: #667085;
  font-size: 13px;
}
@media (max-width: 900px) {
  .region-card-select { padding: 14px 16px; min-height: 104px; gap: 12px; }
  .region-card-select .region-figure-wrap { width: 88px; min-width: 88px; }
  .region-card-select .region-symbol { width: 66px; height: 54px; }
  .region-card-select .region-label { font-size: 15px; }
}
@media (max-width: 640px) {
  .region-grid-cards { display:flex; gap:12px; overflow-x:auto; padding-bottom:6px; }
  .region-card-select { flex:0 0 250px; min-height: 98px; }
  .region-card-select .region-figure-wrap { width: 72px; min-width:72px; }
  .region-card-select .region-symbol { width: 58px; height: 48px; }
  .region-help-note { margin-top: 10px; }
}


/* region selector sizing tweak - 2026-08-07b */
.region-grid-cards { gap: 22px; }
.region-card-select {
  min-height: 136px;
  padding: 20px 24px;
  gap: 18px;
}
.region-card-select .region-figure-wrap {
  width: 138px;
  min-width: 138px;
}
.region-card-select .region-symbol {
  width: 108px;
  height: 84px;
}
.region-card-select .region-label {
  font-size: 18px;
  font-weight: 800;
}
@media (max-width: 900px) {
  .region-grid-cards { gap: 16px; }
  .region-card-select { min-height: 118px; padding: 16px 18px; }
  .region-card-select .region-figure-wrap { width: 100px; min-width: 100px; }
  .region-card-select .region-symbol { width: 78px; height: 62px; }
  .region-card-select .region-label { font-size: 16px; }
}
@media (max-width: 640px) {
  .region-card-select { flex: 0 0 280px; min-height: 110px; }
  .region-card-select .region-figure-wrap { width: 90px; min-width: 90px; }
  .region-card-select .region-symbol { width: 70px; height: 56px; }
  .region-card-select .region-label { font-size: 16px; }
}


/* home screen prototype refresh - 2026-08-07 */
.client-header-shell-prototype { position: sticky; top: 0; z-index: 70; background: rgba(255,255,255,.96); backdrop-filter: blur(12px); border-bottom: 1px solid #e7ebf0; }
.client-header-prototype { width: min(1640px, calc(100% - 24px)); margin: 0 auto; min-height: 104px; padding: 14px 8px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.client-header-left { display:flex; align-items:center; gap:18px; min-width:0; }
.client-menu-button { width:48px; height:48px; border:0; border-radius:14px; display:grid; place-items:center; background:#fff; cursor:pointer; box-shadow: 0 4px 16px rgba(19,60,112,.06); }
.client-menu-button span { display:block; width:24px; height:2.5px; border-radius:99px; background:#1f65eb; margin:2.5px 0; }
.client-brand-prototype { gap:18px; text-decoration:none; }
.client-logo-prototype { width:190px; height:auto; max-height:56px; object-fit:contain; }
.client-brand-prototype .client-brand-copy { display:grid; gap:4px; padding-left:18px; border-left:1px solid #dfe5ec; }
.client-brand-prototype strong { font-size:22px; line-height:1.1; color:#101828; }
.client-brand-prototype small { font-size:15px; color:#667085; }
.client-header-actions-prototype { display:flex; align-items:center; gap:12px; }
.profile-menu-prototype > summary { list-style:none; cursor:pointer; }
.profile-menu-prototype > summary::-webkit-details-marker { display:none; }
.profile-summary-avatar { display:grid; place-items:center; width:46px; height:46px; border:2px solid #1f65eb; border-radius:999px; color:#1f65eb; font-weight:800; background:#fff; box-shadow:0 4px 16px rgba(19,60,112,.05); }
.client-shell { width:min(1640px, calc(100% - 32px)); margin: 14px auto 64px; }
.region-panel { padding:20px 18px 16px; border-radius:22px; }
.section-title-row { margin-bottom:12px; }
.section-title-row h1 { font-size:20px; font-weight:800; color:#101828; }
.revision-note { color:#667085; font-size:15px; }
.catalog-layout { grid-template-columns: minmax(0,1fr) 430px; gap:24px; margin-top:18px; }
.catalog-main { min-width:0; }
.catalog-toolbar { display:grid; grid-template-columns: minmax(0,1fr) 130px; gap:18px; margin-bottom:14px; }
.catalog-search-prototype { margin:0; }
.catalog-search-prototype label { min-height:58px; border-radius:16px; border-color:#dfe5ec; padding:0 18px; }
.catalog-search-prototype label i { color:#667085; width:20px; height:20px; }
.catalog-search-prototype input { min-height:58px; font-size:16px; }
.ui-button-filter { min-height:58px; border-radius:16px; color:#1f65eb; gap:10px; }
.ui-button-filter .bi { width:18px; height:18px; }
.category-tabs-prototype { gap:14px; padding: 0 0 6px; margin-bottom:14px; }
.category-tabs-prototype a { min-height:42px; padding: 9px 18px; border-radius:999px; font-size:15px; box-shadow: 0 3px 10px rgba(19,60,112,.04); }
.category-tabs-prototype a.active { box-shadow: 0 10px 24px rgba(31,95,209,.18); }
.catalog-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap:16px; }
.catalog-card { border-radius:20px; padding:12px; box-shadow: 0 10px 30px rgba(17,24,39,.05); border:1px solid #e6ebf1; }
.catalog-photo { border-radius:16px; background:#f6f8fb; min-height:138px; }
.catalog-photo img { object-fit:contain; }
.catalog-copy { padding: 8px 2px 0; }
.catalog-badges { margin-bottom:8px; gap:6px; }
.catalog-badges span { background:#eef2f8; color:#667085; font-size:11px; }
.catalog-copy h2 { font-size:18px; margin-bottom:10px; color:#101828; }
.catalog-copy p { min-height:48px; color:#475467; font-size:14px; }
.catalog-price small { color:#667085; font-size:14px; }
.catalog-price strong { font-size:20px; color:#1f65eb; }
.catalog-copy .ui-button { min-height:42px; border-radius:12px; }
.opportunity-card-prototype { border-radius:20px; overflow:hidden; border:1px solid #dfe5ec; box-shadow: 0 12px 28px rgba(19,60,112,.08); background:#fff; position:sticky; top:120px; }
.opportunity-head-prototype { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:18px 20px; color:#fff; background:linear-gradient(135deg,#0f66f4,#125cf0 72%,#0d54e5); }
.opportunity-head-copy { display:flex; align-items:center; gap:14px; min-width:0; }
.opportunity-head-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; border:1px solid rgba(255,255,255,.28); }
.opportunity-head-icon .bi { width:20px; height:20px; background-color:#fff; }
.opportunity-head-prototype strong { display:block; font-size:18px; }
.opportunity-head-prototype small { display:block; font-size:14px; color:rgba(255,255,255,.9); }
.opportunity-head-menu { border:0; background:transparent; color:#fff; font-size:28px; line-height:1; padding:0; cursor:pointer; }
.opportunity-body-prototype { padding:18px 20px 20px; }
.cart-section-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.cart-section-title strong { font-size:16px; color:#101828; }
.cart-clear-button { display:inline-flex; align-items:center; gap:7px; color:#1f65eb; font-weight:700; }
.cart-clear-button .bi { width:13px; height:13px; }
.cart-list-prototype { max-height:380px; }
.cart-item-prototype { grid-template-columns: 74px minmax(0,1fr) auto; gap:12px; padding:14px 0; }
.cart-thumb { width:74px; height:74px; border-radius:12px; background:#f3f5f8; }
.cart-item-copy strong { font-size:15px; white-space:normal; line-height:1.25; }
.cart-item-copy small { font-size:13px; }
.cart-item-side { display:grid; align-items:start; justify-items:end; gap:8px; }
.cart-item-value { font-size:15px; font-weight:800; color:#101828; }
.cart-item-remove { border:0; background:transparent; color:#98a2b3; font-size:24px; line-height:1; padding:0 2px; cursor:pointer; }
.cart-item-remove:hover { color:#344054; }
.cart-totals-prototype { gap:12px; margin:16px 0 18px; padding-top:16px; }
.cart-totals-prototype > div { font-size:15px; }
.cart-totals-prototype .discount strong { color:#1f65eb; }
.cart-totals-prototype .grand { align-items:center; padding-top:14px; font-size:18px; }
.cart-totals-prototype .grand strong { font-size:24px; color:#1f65eb; }
.payment-slab { display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid #dfe5ec; border-radius:16px; background:#fff; text-decoration:none; margin-bottom:16px; }
.payment-slab-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:#eef4ff; color:#1f65eb; }
.payment-slab-icon .bi { width:18px; height:18px; }
.payment-slab-copy { display:grid; min-width:0; flex:1; }
.payment-slab-copy small { color:#667085; font-size:13px; }
.payment-slab-copy strong { color:#101828; font-size:15px; }
.payment-slab-change { color:#1f65eb; font-weight:700; }
.ui-button-big { min-height:52px; border-radius:14px; font-size:15px; }
.ui-button-outline.ui-button-big { color:#1f65eb; border-color:#b8d0fb; }
.region-panel + .catalog-layout .catalog-empty { margin-top:0; }
@media (max-width: 1320px) {
  .catalog-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .catalog-layout { grid-template-columns:minmax(0,1fr) 390px; }
}
@media (max-width: 1080px) {
  .client-header-prototype { min-height:88px; }
  .client-logo-prototype { width:150px; }
  .client-brand-prototype strong { font-size:20px; }
  .catalog-layout { grid-template-columns:1fr; }
  .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .opportunity-card-prototype { position:static; }
}
@media (max-width: 700px) {
  .client-header-prototype { width:min(100% - 18px,1640px); padding:10px 2px; }
  .client-menu-button { width:42px; height:42px; }
  .client-logo-prototype { width:118px; max-height:44px; }
  .client-brand-prototype .client-brand-copy { padding-left:12px; }
  .client-brand-prototype strong { font-size:18px; }
  .client-brand-prototype small { font-size:13px; }
  .catalog-toolbar { grid-template-columns:1fr; }
  .catalog-grid { grid-template-columns:1fr; }
  .category-tabs-prototype { display:none; }
  .category-tabs-prototype.is-open { display:flex; }
}


/* client requested refinement - 2026-08-07 */
.client-header-shell-clean { position: sticky; top: 0; z-index: 70; background: rgba(255,255,255,.96); backdrop-filter: blur(12px); border-bottom: 1px solid #e6ebf1; }
.client-header-clean { width:min(1640px, calc(100% - 28px)); margin:0 auto; min-height:92px; padding:12px 0; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.client-brand-clean { text-decoration:none; gap:18px; }
.client-logo-clean { width:190px; max-height:54px; height:auto; object-fit:contain; }
.client-brand-copy-clean { display:grid; gap:3px; padding-left:18px; border-left:1px solid #dfe5ec; }
.client-brand-copy-clean strong { font-size:21px; color:#101828; }
.client-brand-copy-clean small { font-size:14px; color:#667085; }
.client-header-actions-clean { gap:10px; }
.profile-menu-clean summary { display:grid; place-items:center; width:44px; height:44px; border:2px solid #1f65eb; border-radius:50%; background:#fff; color:#1f65eb; }
.profile-menu-clean summary svg { width:22px; height:22px; fill:currentColor; }
.home-layout { display:grid; grid-template-columns:minmax(0,1fr) 420px; gap:24px; align-items:start; }
.home-main-column { min-width:0; }
.home-side-column { min-width:0; }
.region-panel-home { margin-bottom:16px; }
.catalog-main-home { min-width:0; }
.catalog-grid-home { grid-template-columns: repeat(4,minmax(0,1fr)); }
.catalog-card-home .ui-button .bi-gear{ width:15px; height:15px; }
.catalog-card-home .catalog-photo { min-height:174px; }
.catalog-card-home .catalog-copy p { min-height:58px; }
.opportunity-card-prototype { position: sticky; top: 108px; }
.opportunity-head-prototype { padding:18px 20px; }
.cart-item-edit { color:inherit; text-decoration:none; }
.cart-item-edit:hover strong { color:#1f65eb; }
.cart-item-qty-wrap { display:inline-flex; align-items:center; gap:6px; margin-top:4px; }
.cart-item-qty-wrap span { color:#667085; font-size:12px; }
.cart-item-qty { min-width:58px; min-height:30px; padding:4px 8px; border:1px solid #dfe5ec; border-radius:9px; background:#fff; }
.product-page-topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.product-page-topbar .ui-button { min-width:140px; }
.detail-layout { grid-template-columns:minmax(0,1fr) 350px; }
.detail-side-clean { display:block; }
.product-config-actions { display:grid; gap:10px; margin-top:8px; }
.catalog-search-prototype label .bi, .ui-button-filter .bi, .opportunity-head-icon .bi, .payment-slab-icon .bi { background-color:currentColor!important; }
@media (max-width: 1320px) {
  .catalog-grid-home { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .home-layout { grid-template-columns:minmax(0,1fr) 380px; }
}
@media (max-width: 1080px) {
  .home-layout, .detail-layout { grid-template-columns:1fr; }
  .opportunity-card-prototype, .calculation-card { position:static; }
  .catalog-grid-home { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .client-header-clean { width:min(100% - 18px,1640px); min-height:78px; }
  .client-logo-clean { width:128px; max-height:42px; }
  .client-brand-copy-clean { padding-left:12px; }
  .client-brand-copy-clean strong { font-size:18px; }
  .client-brand-copy-clean small { font-size:12px; }
  .catalog-grid-home { grid-template-columns:1fr; }
  .product-page-topbar { flex-wrap:wrap; }
}


/* correção fundo branco das imagens de região - 2026-08-07 */
.region-card-select .region-symbol.has-image,
.region-card-select.active .region-symbol.has-image {
  background: transparent !important;
  box-shadow: none !important;
}
.region-card-select .region-symbol.has-image img {
  background: transparent !important;
  mix-blend-mode: multiply;
}


/* fixes requested 2026-08-07 - regions/categories/cart */
.region-change-alert { margin: 0 0 14px; }
.category-tabs-prototype a { display:inline-flex; align-items:center; gap:8px; }
.category-pill-icon { width:20px; height:20px; object-fit:contain; flex:0 0 auto; }
.category-tabs-prototype a.active .category-pill-icon { filter: brightness(0) invert(1); }
.button-inline-icon { width:17px; height:17px; object-fit:contain; }
.cart-item-edit strong { display:block; }
.cart-item-prototype .cart-item-copy > small:first-of-type { color:#475467; font-weight:600; }
.region-card-select:not(.active) { cursor:pointer; }
.region-card-select:not(.active):hover { border-color:#86adfb; background:#f8fbff; }

/* ===== Validação cliente 2026-08-07 · acabamento visual e azul oficial ===== */
:root {
  --eko-blue: #1F5FD1;
  --eko-blue-dark: #174BA7;
  --eko-blue-soft: #EEF4FF;
  --proto-blue: #1F5FD1;
  --proto-blue-strong: #174BA7;
  --eko-hero: linear-gradient(135deg, #1F5FD1 0%, #2E70DF 62%, #5B91EA 100%);
}

.client-body { background: #f4f7fb; }
.ui-button-primary { border-color: var(--eko-blue); background: linear-gradient(135deg,var(--eko-blue),#2b6cdc); }
.ui-button-primary:hover:not(:disabled) { background: var(--eko-blue-dark); }
.category-tabs a.active { border-color: var(--eko-blue); background: var(--eko-blue); }
.opportunity-head,
.opportunity-head-prototype { background: linear-gradient(135deg,#1F5FD1,#2468dc 72%,#174BA7); }
.catalog-price strong,
.cart-totals-prototype .grand strong,
.proposal-total strong,
.calculation-total strong { color: var(--eko-blue); }

.client-header-clean { padding-inline: 8px; }
.client-logo-clean { width: 178px; max-height: 52px; }
.header-quotes-link {
  display:inline-flex;
  min-height:42px;
  align-items:center;
  padding:0 12px;
  border-radius:10px;
  color:#344054;
  font-size:14px;
  font-weight:700;
  text-decoration:none;
}
.header-quotes-link:hover { color:var(--eko-blue); background:#f4f7fd; }
.profile-menu-simple { width:190px !important; }
.profile-menu-user { display:grid; gap:2px; padding-bottom:8px; }
.profile-menu-simple > a { margin-top:0 !important; }

.home-layout { grid-template-columns:minmax(0,1fr) 420px; }
.home-side-column .opportunity-card { margin-top:0; }
.payment-slab-static { cursor:default; }
.payment-slab-static:hover { border-color:#dfe5ec; }
.catalog-filter-panel {
  display:grid;
  grid-template-columns:minmax(220px,320px) auto;
  align-items:end;
  gap:12px;
  margin:-2px 0 14px;
  padding:14px;
  border:1px solid #dfe5ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(16,24,40,.05);
}
.catalog-filter-panel[hidden] { display:none !important; }
.catalog-filter-panel .field { margin:0; }
.ui-button-filter.active { border-color:var(--eko-blue); color:var(--eko-blue); background:#eef4ff; }
.catalog-grid.is-loading { opacity:.58; pointer-events:none; transition:opacity .12s ease; }
.category-tabs-prototype { overflow-x:auto; scrollbar-width:thin; }
.category-tabs-prototype a { white-space:nowrap; }
.category-pill-icon { width:19px; height:19px; }
.button-inline-icon { width:16px; height:16px; }

/* Configurador */
.client-shell-product { padding-bottom:42px; }
.product-page-topbar { justify-content:flex-start; }
.product-page-topbar .ui-button { min-width:110px; }
.product-hero-card,
.config-card,
.calculation-card { border-radius:18px; border-color:#e0e6ef; }
.config-section + .config-section { border-top-color:#e7ebf1; }
.choice-card.dimension-disabled {
  opacity:.42;
  background:#f7f8fa;
  border-color:#eaecf0;
  cursor:not-allowed;
}
.choice-card.dimension-disabled span { color:#98a2b3; }
.calculation-card { gap:14px; }
.calculation-card > div:not(.calculation-total):not(.product-config-actions) { color:#475467; }
.calculation-total { margin-top:4px; padding-top:14px; }
.readonly-field { color:#344054 !important; background:#f7f9fc !important; cursor:default; }

/* Edição / resumo da proposta */
.page-title-block,
.history-heading { align-items:flex-start; }
.page-title-block h1,
.history-heading h1 { letter-spacing:-.03em; }
.summary-layout { gap:22px; }
.summary-table-card,
.summary-settings-card,
.proposal-summary-card,
.finalize-form-card,
.document-preview-card,
.proposal-document { border-color:#e0e6ef; box-shadow:0 8px 26px rgba(16,24,40,.055); }
.summary-item { align-items:center; }
.summary-product { min-width:0; }
.summary-product strong { font-size:15px; }
.summary-product small { line-height:1.35; }
.summary-quantity input,
.summary-observation input { min-height:42px; }
.proposal-summary-card { top:110px; }
.payment-select select { min-height:46px; }
.quote-facts-compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.finalize-layout { align-items:start; }
.finalize-form-card .config-grid.two { align-items:start; }
.document-preview-card { top:110px; }

/* Proposta finalizada */
.proposal-actions { flex-wrap:wrap; justify-content:flex-end; }
.proposal-info-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.proposal-document footer { color:#667085; }

/* Histórico */
.history-card { align-items:center; }
.history-card-actions { flex-wrap:wrap; justify-content:flex-end; }

/* Administração acompanha o novo azul */
.prototype-primary-btn { background:linear-gradient(180deg,#2E70DF,#1F5FD1); }
.prototype-sidebar-nav a.active { color:#1F5FD1; background:#edf3ff; }
.prototype-sidebar-nav a.active i,
.prototype-sidebar-nav a:hover i { color:#1F5FD1; }
.prototype-sidebar-nav a.active::before { background:#1F5FD1; }
.prototype-logout { color:#1F5FD1; }
.prototype-stat-icon { color:#1F5FD1; }
.chart-line { stroke:#1F5FD1; }
.chart-point { stroke:#1F5FD1; }

@media (max-width:1080px) {
  .home-layout { grid-template-columns:1fr; }
  .proposal-info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .client-logo-clean { width:120px; }
  .header-quotes-link { padding:0 7px; font-size:12px; }
  .catalog-filter-panel { grid-template-columns:1fr; }
  .quote-facts-compact,
  .proposal-info-grid { grid-template-columns:1fr; }
  .summary-item { align-items:start; }
}

/* catalog navigation + useful filters - 2026-08-07 fix16 */
.client-brand-copy-clean { align-content:center; }
.client-brand-copy-clean strong { font-size:22px; font-weight:800; }
.client-brand-copy-clean small { display:none; }

.category-tabs-prototype.category-tabs-scroll {
  display:flex !important;
  flex-wrap:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  touch-action:pan-x;
  cursor:grab;
  padding-bottom:8px;
  user-select:none;
}
.category-tabs-prototype.category-tabs-scroll::-webkit-scrollbar { display:none; width:0; height:0; }
.category-tabs-prototype.category-tabs-scroll.is-dragging { cursor:grabbing; scroll-behavior:auto; }
.category-tabs-prototype.category-tabs-scroll a { flex:0 0 auto; user-select:none; -webkit-user-drag:none; }
.category-tabs-prototype.category-tabs-scroll img { pointer-events:none; }

.catalog-filter-panel-useful {
  grid-template-columns:minmax(170px,1.1fr) minmax(150px,.8fr) minmax(150px,.8fr) minmax(190px,1fr) auto;
  gap:14px;
  align-items:end;
  padding:16px;
  margin:0 0 14px;
  border:1px solid #dfe5ec;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(16,24,40,.04);
}
.catalog-filter-panel-useful .field span { font-size:12px; font-weight:700; color:#475467; }
.catalog-filter-panel-useful .field select,
.catalog-filter-panel-useful .field input { min-height:44px; border-radius:11px; }
.catalog-filter-clear { min-height:44px; white-space:nowrap; }
.catalog-filter-clear .bi { width:15px; height:15px; }

@media (max-width:1180px) {
  .catalog-filter-panel-useful { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-filter-clear { width:100%; }
}
@media (max-width:700px) {
  .category-tabs-prototype.category-tabs-scroll { display:flex !important; }
  .catalog-filter-panel-useful { grid-template-columns:1fr; }
  .client-brand-copy-clean { padding-left:10px; }
  .client-brand-copy-clean strong { font-size:18px; }
}

/* configuracoes de preco e navegacao do catalogo - 2026-08-07 fix17 */
.price-configuration-section .field { max-width:520px; }
.price-configuration-section select { min-height:48px; font-weight:700; }
.selected-price-configuration {
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  padding:0 14px;
  border:1px solid #dfe5ec;
  border-radius:12px;
  background:#f8fafc;
}
.selected-price-configuration span { font-size:12px; color:#667085; font-weight:700; }
.selected-price-configuration strong { color:#101828; }
.cart-item-copy > small { display:block; }
.category-tabs-prototype.category-tabs-scroll {
  scrollbar-width:none !important;
  -webkit-overflow-scrolling:touch;
}

/* automatic table rule feedback */
.choice-card.automatic-option { border-color: rgba(31,95,209,.55); background:#f4f8ff; }
.choice-card.automatic-option span > small:last-child { color:#475467; font-weight:600; line-height:1.35; }

/* catalog pagination - 2026-08-07 */
.catalog-products-anchor {
  height: 1px;
  scroll-margin-top: 118px;
  pointer-events: none;
}
.catalog-pagination-bar {
  display: grid;
  grid-template-columns: minmax(180px,1fr) auto minmax(180px,1fr);
  align-items: center;
  gap: 18px;
  margin-top: 22px;
  padding: 16px 18px;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(15, 23, 42, .04);
}
.catalog-pagination-info {
  color: #667085;
  font-size: 14px;
}
.catalog-pagination-pages {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
.catalog-page-button {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d8e0eb;
  border-radius: 10px;
  background: #fff;
  color: #344054;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease, transform .15s ease;
}
.catalog-page-button:hover:not(:disabled):not(.current) {
  border-color: #1F5FD1;
  color: #1F5FD1;
  background: #f5f8ff;
  transform: translateY(-1px);
}
.catalog-page-button.current {
  border-color: #1F5FD1;
  background: #1F5FD1;
  color: #fff;
  box-shadow: 0 7px 18px rgba(31,95,209,.18);
}
.catalog-page-button:disabled {
  opacity: .35;
  cursor: default;
}
.catalog-page-ellipsis {
  min-width: 22px;
  text-align: center;
  color: #98a2b3;
  font-weight: 700;
}
.catalog-per-page {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #667085;
  font-size: 14px;
}
.catalog-per-page select {
  min-width: 76px;
  height: 40px;
  padding: 0 30px 0 12px;
  border: 1px solid #d8e0eb;
  border-radius: 10px;
  background: #fff;
  color: #344054;
  font: inherit;
  font-weight: 700;
}
@media (max-width: 900px) {
  .catalog-pagination-bar {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .catalog-pagination-info,
  .catalog-per-page { justify-self: center; }
}
@media (max-width: 560px) {
  .catalog-pagination-bar { padding: 14px 12px; }
  .catalog-pagination-pages { gap: 5px; flex-wrap: wrap; }
  .catalog-page-button { width: 36px; height: 36px; }
  .catalog-per-page { width: 100%; justify-content: center; }
}

/* Correção: elementos do catálogo marcados como hidden não podem ser reexibidos pelo display dos componentes. */
[data-catalog-grid][hidden],
[data-catalog-empty][hidden],
[data-catalog-pagination][hidden] {
  display: none !important;
}

/* Resumo da oportunidade v2 — 2026-08-10 */
.ui-alert-info { border:1px solid #bfd5ff; color:#174b9f; background:#f4f8ff; }
.client-shell-summary { width:min(1660px, calc(100% - 32px)); }
.summary-page-heading { align-items:flex-start; }
.summary-title-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:10px; }
.summary-title-meta small { color:var(--eko-muted); font-size:12px; }
.summary-number { padding:7px 10px; border-radius:9px; background:#eaf2ff; color:var(--eko-blue); font-size:12px; font-weight:800; }
.summary-status { padding:7px 11px; border-radius:999px; font-size:12px; font-weight:800; }
.summary-status.draft { border:1px solid #f2c36e; color:#9b5b00; background:#fff5df; }
.summary-status.finalized { border:1px solid #a6dfba; color:#147245; background:#eefbf2; }
.summary-finalized-notice { margin:-4px 0 18px; }
.summary-layout-v2 { grid-template-columns:minmax(0,1fr) 380px; gap:24px; }
.summary-table-v2 { overflow:visible; }
.summary-table-head,
.summary-item-row {
  display:grid;
  grid-template-columns:minmax(300px,1.65fr) 68px 118px 145px 130px minmax(170px,.85fr) 82px;
  gap:14px;
  align-items:center;
}
.summary-table-head { padding:13px 18px; border-bottom:1px solid var(--eko-line); color:#4d5c73; background:#fbfcfe; font-size:11px; font-weight:800; }
.summary-item-v2 { border-bottom:1px solid var(--eko-line); background:#fff; }
.summary-item-v2:last-child { border-bottom:0; }
.summary-item-row { min-height:118px; padding:16px 18px; }
.summary-product-cell { display:grid; grid-template-columns:82px minmax(0,1fr); gap:14px; align-items:center; min-width:0; }
.summary-photo-v2 { width:82px; height:78px; }
.summary-product-v2 strong { font-size:14px; color:#17223d; }
.summary-product-v2 a { width:max-content; max-width:100%; font-weight:700; }
.summary-quantity-v2 { justify-items:center; gap:5px; }
.summary-quantity-v2 input { width:52px; padding:9px 6px; text-align:center; }
.summary-quantity-v2 small { color:var(--eko-muted); font-size:10px; }
.summary-discount-cell,
.summary-distributor-discount,
.summary-final-value { display:grid; gap:4px; align-content:center; }
.summary-discount-cell strong { color:#168343; font-size:14px; }
.summary-discount-cell small,
.summary-distributor-discount small,
.summary-final-value small { color:var(--eko-muted); font-size:10px; }
.summary-discount-cell.empty span { color:#98a2b3; font-weight:700; }
.summary-distributor-discount strong { color:var(--eko-blue); font-size:14px; }
.summary-add-discount,
.summary-edit-discount { width:max-content; max-width:100%; padding:7px 9px; border:1px solid #b9d2ff; border-radius:8px; color:var(--eko-blue); background:#f7faff; font:inherit; font-size:11px; font-weight:800; cursor:pointer; }
.summary-edit-discount { padding:0; border:0; background:transparent; font-size:10px; text-decoration:underline; }
.summary-final-value strong { color:var(--eko-blue); font-size:14px; }
.summary-observation-v2 input { min-width:0; padding:9px 10px; font-size:11px; }
.summary-actions-v2 { justify-content:center; }
.item-discount-editor { margin:0 18px 16px; padding:14px 16px; border:1px solid #bfd5ff; border-radius:12px; background:#f8fbff; }
.item-discount-editor[hidden] { display:none !important; }
.item-discount-editor-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:12px; }
.item-discount-editor-head > div { display:grid; gap:3px; }
.item-discount-editor-head strong { color:#1958b8; font-size:12px; }
.item-discount-editor-head small { color:#60708a; font-size:11px; }
.item-discount-close { border:0; background:transparent; color:#6f7c91; font-size:20px; cursor:pointer; }
.item-discount-controls { display:grid; grid-template-columns:minmax(160px,.75fr) minmax(240px,1fr) minmax(140px,.7fr) auto; gap:14px; align-items:center; }
.item-discount-controls > span { color:#4e5d74; font-size:11px; font-weight:700; }
.item-discount-stepper { display:grid; grid-template-columns:40px 1fr 34px 40px; min-height:40px; overflow:hidden; border:1px solid #cbd8ec; border-radius:9px; background:#fff; }
.item-discount-stepper button { border:0; background:#f5f8fd; color:var(--eko-blue); font-size:18px; cursor:pointer; }
.item-discount-stepper input { width:100%; border:0; border-left:1px solid #e0e6ef; text-align:center; outline:0; }
.item-discount-stepper span { display:grid; place-items:center; color:#7b879b; background:#fff; font-size:11px; }
.item-discount-money { display:grid; gap:3px; }
.item-discount-money small { color:var(--eko-muted); font-size:10px; }
.item-discount-money strong { color:var(--eko-blue); }
.summary-observation-card { padding:16px 18px; }
.summary-observation-card .setting-block { display:grid; gap:10px; }
.summary-observation-card .setting-block p { margin:0; }
.summary-observation-card .ui-button { width:max-content; }
.proposal-summary-v2 { top:108px; border-top:4px solid var(--eko-blue); }
.proposal-summary-v2 .official-total strong { color:#168343; }
.proposal-summary-v2 .distributor-total strong { color:var(--eko-blue); }
.summary-info-strip { display:block !important; padding:12px; border:1px solid #c9daf9; border-radius:9px; color:#285ba8; background:#f7faff; font-size:11px !important; line-height:1.45; }
.summary-payment-select { padding-top:4px; }
.summary-payment-select select { min-height:44px; font-weight:700; }

@media (max-width: 1380px) {
  .summary-layout-v2 { grid-template-columns:minmax(0,1fr) 340px; }
  .summary-table-head,
  .summary-item-row { grid-template-columns:minmax(250px,1.5fr) 62px 105px 125px 115px minmax(145px,.8fr) 72px; gap:10px; }
  .summary-product-cell { grid-template-columns:70px minmax(0,1fr); gap:10px; }
  .summary-photo-v2 { width:70px; height:68px; }
}
@media (max-width: 1120px) {
  .summary-layout-v2 { grid-template-columns:1fr; }
  .proposal-summary-v2 { position:static; }
}
@media (max-width: 900px) {
  .summary-table-head { display:none; }
  .summary-item-row { grid-template-columns:72px minmax(0,1fr) 74px; gap:10px; align-items:start; }
  .summary-product-cell { grid-column:1 / 3; grid-template-columns:72px minmax(0,1fr); }
  .summary-photo-v2 { width:72px; height:68px; }
  .summary-quantity-v2 { grid-column:3; grid-row:1; }
  .summary-discount-cell { grid-column:1 / 2; padding-top:6px; }
  .summary-distributor-discount { grid-column:2 / 3; padding-top:6px; }
  .summary-final-value { grid-column:3 / 4; padding-top:6px; }
  .summary-observation-v2 { grid-column:1 / 3; }
  .summary-actions-v2 { grid-column:3 / 4; justify-content:flex-end; }
  .item-discount-controls { grid-template-columns:1fr 1.4fr; }
}
@media (max-width: 620px) {
  .client-shell-summary { width:min(100% - 18px,1660px); }
  .summary-page-heading { display:grid; }
  .summary-title-meta { justify-content:flex-start; }
  .summary-item-row { grid-template-columns:1fr 70px; padding:14px; }
  .summary-product-cell { grid-column:1 / 3; }
  .summary-quantity-v2 { grid-column:2; grid-row:2; }
  .summary-discount-cell { grid-column:1; grid-row:2; }
  .summary-distributor-discount { grid-column:1; grid-row:3; }
  .summary-final-value { grid-column:2; grid-row:3; }
  .summary-observation-v2 { grid-column:1 / 3; grid-row:4; }
  .summary-actions-v2 { grid-column:1 / 3; grid-row:5; justify-content:flex-end; }
  .item-discount-editor { margin:0 10px 12px; }
  .item-discount-controls { grid-template-columns:1fr; }
}


/* Resumo: desconto total do orçamento + fluxo de finalização - 2026-08-10 */
.proposal-summary-v2 .item-distributor-total strong { color:#285ba8; }
.proposal-summary-v2 .order-discount-total strong { color:#8a4b10; }
.order-discount-card { display:grid; gap:12px; padding:14px; border:1px solid #d7e2f4; border-radius:12px; background:#fbfcff; }
.order-discount-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.order-discount-card-head > div { display:grid; gap:3px; }
.order-discount-card-head strong { color:#1b2b45; font-size:12px; }
.order-discount-card-head small { color:#68778f; font-size:10px; line-height:1.4; }
.order-discount-fields { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:8px; align-items:end; }
.order-discount-fields label { display:grid; gap:5px; }
.order-discount-fields label > span { color:#5d6b80; font-size:10px; font-weight:700; }
.order-discount-or { align-self:center; padding-top:17px; color:#98a2b3; font-size:10px; font-weight:700; }
.order-discount-input { display:grid; grid-template-columns:minmax(0,1fr) 28px; min-height:38px; overflow:hidden; border:1px solid #d4ddeb; border-radius:9px; background:#fff; }
.order-discount-input.money { grid-template-columns:32px minmax(0,1fr); }
.order-discount-input input { width:100%; min-width:0; border:0; outline:0; padding:8px 9px; background:transparent; }
.order-discount-input span { display:grid; place-items:center; color:#6d7a8e; background:#f5f7fb; font-size:10px; }
@media (max-width: 420px) {
  .order-discount-fields { grid-template-columns:1fr; }
  .order-discount-or { padding:0; text-align:center; }
}

/* Resumo: desconto total abaixo da listagem de itens - 2026-08-10 */
.order-discount-main-card {
  margin-top: 16px;
  padding: 18px 20px;
  border-color: #d4deed;
  background: #fff;
  box-shadow: 0 8px 22px rgba(28, 44, 74, .05);
}
.order-discount-main-card .order-discount-card-head {
  align-items: center;
}
.order-discount-main-card .order-discount-card-head strong {
  font-size: 15px;
}
.order-discount-main-card .order-discount-card-head small {
  font-size: 12px;
}
.order-discount-current {
  flex: 0 0 auto;
  display: grid;
  gap: 2px;
  text-align: right;
}
.order-discount-current span {
  color: #7b8799;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.order-discount-current strong {
  color: #8a4b10 !important;
  font-size: 16px !important;
}
.order-discount-main-card .order-discount-fields {
  grid-template-columns: minmax(150px, 210px) auto minmax(170px, 230px) auto;
  justify-content: start;
  align-items: end;
}
.order-discount-main-card .order-discount-apply {
  min-height: 38px;
  align-self: end;
  white-space: nowrap;
}
@media (max-width: 760px) {
  .order-discount-main-card .order-discount-card-head {
    align-items: flex-start;
  }
  .order-discount-current {
    text-align: left;
  }
  .order-discount-main-card .order-discount-fields {
    grid-template-columns: 1fr;
  }
  .order-discount-main-card .order-discount-or {
    padding: 0;
    text-align: center;
  }
  .order-discount-main-card .order-discount-apply {
    width: 100%;
  }
}

/* ===== Home mobile/tablet UX hardening - 2026-08-10 =====
   Escopo deliberadamente restrito ao catalogo inicial. O desktop (>1080px)
   permanece com a composicao validada. */
@media (max-width: 1080px) {
  .client-shell-home {
    width: min(100% - 28px, 1540px);
    margin-top: 14px;
  }

  .client-shell-home .home-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .client-shell-home .region-panel-home {
    padding: 18px;
    border-radius: 18px;
  }

  .client-shell-home .region-grid-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    overflow: visible;
    padding-bottom: 0;
  }

  .client-shell-home .region-card-select {
    width: auto;
    min-width: 0;
    min-height: 108px;
    padding: 14px 16px;
    gap: 12px;
    flex: none;
  }

  .client-shell-home .region-card-select .region-figure-wrap {
    width: 88px;
    min-width: 88px;
  }

  .client-shell-home .region-card-select .region-symbol {
    width: 70px;
    height: 58px;
  }

  .client-shell-home .catalog-grid-home {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .client-shell-home .catalog-card-home {
    min-width: 0;
  }

  .client-shell-home .catalog-card-home .catalog-photo {
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
    padding: 12px;
  }

  .client-shell-home .catalog-card-home .catalog-photo img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }
}

@media (max-width: 900px) {
  .client-shell-home {
    padding-bottom: 96px;
  }

  .client-shell-home .home-side-column > .opportunity-card {
    display: none;
  }

  .client-shell-home .mobile-cart-bar {
    position: fixed;
    left: max(12px, env(safe-area-inset-left));
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
    z-index: 65;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid #b8cff7;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 12px 32px rgba(17, 61, 122, .20);
    backdrop-filter: blur(12px);
  }

  .client-shell-home .mobile-cart-bar > div {
    display: grid;
    min-width: 0;
  }

  .client-shell-home .mobile-cart-bar > div span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #253552;
    font-size: 12px;
    font-weight: 800;
  }

  .client-shell-home .mobile-cart-bar small {
    color: var(--eko-muted);
    font-size: 11px;
  }

  .client-shell-home .mobile-cart-bar > strong {
    color: var(--eko-blue);
    font-size: 15px;
    white-space: nowrap;
  }

  .client-shell-home .mobile-cart-bar a,
  .client-shell-home .mobile-cart-bar button {
    min-height: 40px;
    padding: 8px 14px;
    border: 0;
    border-radius: 10px;
    color: #fff;
    background: var(--eko-blue);
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
  }

  .client-shell-home .mobile-cart-bar button:disabled {
    color: #7d899c;
    background: #e9edf3;
  }
}

@media (max-width: 700px) {
  .client-header-clean {
    width: calc(100% - 20px);
    min-height: 68px;
    gap: 8px;
    padding: 8px 0;
  }

  .client-brand-clean {
    min-width: 0;
    gap: 8px;
  }

  .client-logo-clean {
    width: 96px;
    max-width: 96px;
    max-height: 38px;
    flex: 0 0 auto;
  }

  .client-brand-copy-clean {
    min-width: 0;
    padding-left: 8px;
  }

  .client-brand-copy-clean strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
  }

  .client-header-actions-clean {
    flex: 0 0 auto;
    gap: 5px;
  }

  .header-quotes-link {
    min-height: 38px;
    padding: 0 6px;
    font-size: 11px;
    white-space: nowrap;
  }

  .profile-menu-clean summary {
    width: 38px;
    height: 38px;
    border-width: 1.5px;
  }

  .profile-menu-clean summary svg {
    width: 19px;
    height: 19px;
  }

  .profile-menu > div,
  .profile-menu-simple {
    top: 46px;
    width: min(210px, calc(100vw - 24px)) !important;
  }

  .client-shell-home {
    width: calc(100% - 20px);
    margin-top: 10px;
    padding-bottom: 94px;
  }

  .client-shell-home .region-panel-home {
    margin-bottom: 12px;
    padding: 14px;
    border-radius: 16px;
  }

  .client-shell-home .section-title-row {
    gap: 7px;
    margin-bottom: 12px;
  }

  .client-shell-home .section-title-row h1 {
    font-size: 17px;
    line-height: 1.25;
  }

  .client-shell-home .revision-note {
    max-width: 100%;
    font-size: 11px;
    line-height: 1.35;
  }

  /* No celular as regioes ficam sempre visiveis em 2x2. Isso elimina cards
     cortados e evita obrigar o usuario a descobrir um carrossel horizontal. */
  .client-shell-home .region-grid-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    overflow: visible;
  }

  .client-shell-home .region-card-select {
    flex: none;
    width: auto;
    min-width: 0;
    min-height: 118px;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    padding: 10px 8px;
    text-align: center;
    border-radius: 13px;
  }

  .client-shell-home .region-card-select .region-figure-wrap {
    width: 100%;
    min-width: 0;
    height: 58px;
  }

  .client-shell-home .region-card-select .region-symbol {
    width: 72px;
    height: 56px;
    max-width: 100%;
    margin: 0 auto;
  }

  .client-shell-home .region-card-select .region-symbol.has-image img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }

  .client-shell-home .region-card-select .region-label {
    width: 100%;
    min-width: 0;
    font-size: 13px;
    line-height: 1.18;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .client-shell-home .region-card-select .region-check {
    top: 7px;
    right: 7px;
    width: 20px;
    height: 20px;
  }

  .client-shell-home .catalog-toolbar {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    margin-bottom: 10px;
  }

  .client-shell-home .catalog-search-prototype label,
  .client-shell-home .catalog-search-prototype input {
    min-height: 48px;
  }

  .client-shell-home .catalog-search-prototype label {
    padding: 0 12px;
    border-radius: 12px;
  }

  .client-shell-home .catalog-search-prototype input {
    min-width: 0;
    font-size: 14px;
  }

  .client-shell-home .ui-button-filter {
    min-height: 48px;
    padding: 8px 12px;
    border-radius: 12px;
    font-size: 12px;
    white-space: nowrap;
  }

  .client-shell-home .catalog-filter-panel-useful {
    gap: 11px;
    padding: 13px;
    border-radius: 14px;
  }

  .client-shell-home .category-tabs-prototype.category-tabs-scroll {
    gap: 8px;
    margin-bottom: 10px;
    padding: 1px 1px 8px;
    scroll-snap-type: x proximity;
  }

  .client-shell-home .category-tabs-prototype.category-tabs-scroll a {
    min-height: 42px;
    padding: 8px 13px;
    scroll-snap-align: start;
    font-size: 12px;
  }

  .client-shell-home .category-pill-icon {
    width: 18px;
    height: 18px;
  }

  .client-shell-home .catalog-grid-home {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  /* Remove o layout antigo horizontal do card no telefone. A foto passa a ter
     uma area previsivel, sem esticar/cortar e com o conteudo em fluxo vertical. */
  .client-shell-home .catalog-card-home {
    display: block;
    overflow: hidden;
    border-radius: 16px;
  }

  .client-shell-home .catalog-card-home .catalog-photo {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    padding: 12px;
    border-radius: 0;
    background: #f7f9fc;
  }

  .client-shell-home .catalog-card-home .catalog-photo img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }

  .client-shell-home .catalog-card-home .catalog-copy {
    gap: 8px;
    padding: 13px;
  }

  .client-shell-home .catalog-card-home .catalog-copy h2 {
    font-size: 16px;
    line-height: 1.3;
  }

  .client-shell-home .catalog-card-home .catalog-copy p {
    display: -webkit-box;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    color: #59677d;
    font-size: 12px;
    line-height: 1.45;
  }

  .client-shell-home .catalog-badges {
    gap: 5px;
  }

  .client-shell-home .catalog-badges span {
    padding: 4px 8px;
    font-size: 9px;
  }

  .client-shell-home .catalog-price {
    margin-top: 1px;
  }

  .client-shell-home .catalog-price small {
    font-size: 11px;
  }

  .client-shell-home .catalog-price strong {
    font-size: 20px;
  }

  .client-shell-home .catalog-copy .ui-button {
    min-height: 44px;
    margin-top: 1px;
    border-radius: 11px;
    font-size: 13px;
  }

  .client-shell-home .catalog-empty,
  .client-shell-home .catalog-empty.compact {
    min-height: 190px;
    padding: 22px 16px;
  }

  .client-shell-home .catalog-empty h2 {
    font-size: 18px;
  }

  .client-shell-home .catalog-empty p {
    max-width: 420px;
    font-size: 12px;
    line-height: 1.45;
  }

  .client-shell-home .catalog-pagination-bar {
    gap: 12px;
    margin-top: 14px;
    padding: 13px 10px;
    border-radius: 14px;
  }

  .client-shell-home .catalog-pagination-info,
  .client-shell-home .catalog-per-page {
    font-size: 12px;
  }

  .client-shell-home .catalog-page-button {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    font-size: 12px;
  }
}

@media (max-width: 430px) {
  .client-logo-clean {
    width: 86px;
    max-width: 86px;
  }

  .client-brand-copy-clean {
    padding-left: 6px;
  }

  .client-brand-copy-clean strong {
    font-size: 14px;
  }

  .header-quotes-link {
    padding: 0 4px;
    font-size: 10px;
  }

  .profile-menu-clean summary {
    width: 36px;
    height: 36px;
  }

  .client-shell-home .region-card-select {
    min-height: 108px;
    padding: 9px 6px;
  }

  .client-shell-home .region-card-select .region-figure-wrap {
    height: 50px;
  }

  .client-shell-home .region-card-select .region-symbol {
    width: 64px;
    height: 49px;
  }

  .client-shell-home .region-card-select .region-label {
    font-size: 12px;
  }

  .client-shell-home .catalog-toolbar {
    gap: 6px;
  }

  .client-shell-home .ui-button-filter {
    padding-inline: 10px;
  }

  .client-shell-home .mobile-cart-bar {
    left: max(8px, env(safe-area-inset-left));
    right: max(8px, env(safe-area-inset-right));
    bottom: max(8px, env(safe-area-inset-bottom));
    gap: 7px;
    padding: 9px 10px;
  }

  .client-shell-home .mobile-cart-bar > strong {
    font-size: 13px;
  }

  .client-shell-home .mobile-cart-bar a,
  .client-shell-home .mobile-cart-bar button {
    min-height: 38px;
    padding: 7px 10px;
    font-size: 11px;
  }
}

@media (hover: none) and (pointer: coarse) {
  .client-shell-home .region-card-select:hover,
  .client-shell-home .catalog-card:hover,
  .client-shell-home .ui-button:hover:not(:disabled) {
    transform: none;
  }
}


/* ===== Mobile/tablet refinement based on client prototypes - 2026-08-10 =====
   Mantém desktop como base e melhora toque, leitura e hierarquia nas páginas
   app.php, produto.php, resumo.php e finalizar.php. */

.client-shell-product,
.client-shell-summary,
.client-shell > .page-title-block,
.client-shell .finalize-layout {
  scroll-margin-top: 108px;
}

@media (max-width: 980px) {
  .client-header-clean {
    min-height: 76px;
    gap: 12px;
    padding-block: 10px;
  }

  .client-brand-clean {
    min-width: 0;
    flex: 1 1 auto;
    gap: 12px;
  }

  .client-logo-clean {
    width: 132px;
    max-height: 42px;
    flex: 0 0 auto;
  }

  .client-brand-copy-clean {
    min-width: 0;
    gap: 2px;
    padding-left: 12px;
  }

  .client-brand-copy-clean strong {
    font-size: 18px;
    line-height: 1.15;
  }

  .client-brand-copy-clean small {
    display: block;
    color: #667085;
    font-size: 11px;
    line-height: 1.3;
  }

  .client-header-actions-clean {
    flex: 0 0 auto;
    gap: 8px;
  }

  .header-quotes-link {
    min-height: 40px;
    padding-inline: 10px;
    border: 1px solid #d8e2f1;
    border-radius: 11px;
    font-size: 12px;
    white-space: nowrap;
  }

  .product-page-topbar {
    gap: 10px;
    margin-bottom: 14px;
  }

  .product-page-topbar .ui-button {
    min-width: 0;
    min-height: 44px;
    padding-inline: 14px;
  }

  .product-hero-card {
    grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
    gap: 18px;
    padding: 18px;
  }

  .product-detail-photo {
    min-height: 180px;
    border-radius: 16px;
  }

  .product-detail-photo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .product-detail-copy h1 {
    font-size: 30px;
    line-height: 1.1;
  }

  .feature-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .feature-row span {
    min-height: 42px;
    align-items: center;
  }

  .config-card,
  .summary-table-card,
  .summary-settings-card,
  .proposal-summary-card,
  .finalize-form-card {
    border-radius: 18px;
  }

  .config-section {
    padding-block: 2px;
  }

  .config-section h2 {
    font-size: 18px;
  }

  .choice-card {
    min-height: 56px;
    padding: 12px 14px;
    border-radius: 14px;
  }

  .choice-card span {
    line-height: 1.35;
  }

  .info-strip,
  .summary-info-strip {
    border-radius: 12px;
  }

  .calculation-card {
    display: grid;
    gap: 14px;
    padding: 18px;
  }

  .calculation-card > div {
    font-size: 14px;
  }

  .calculation-total strong {
    font-size: 26px;
  }

  .proposal-summary-v2 {
    border-top-width: 3px;
  }

  .proposal-summary-v2 .ui-button,
  .product-config-actions .ui-button,
  .finalize-form-card .ui-button {
    min-height: 48px;
    border-radius: 12px;
    font-size: 14px;
  }

  .summary-item-v2 {
    border-radius: 0;
  }

  .summary-item-row {
    min-height: 0;
  }

  .summary-product-v2 strong {
    font-size: 15px;
  }

  .summary-final-value strong {
    font-size: 16px;
  }

  .summary-payment-select select,
  .field input,
  .field select,
  .field textarea {
    font-size: 16px;
  }

  .finalize-layout {
    gap: 16px;
  }

  .quote-facts-compact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

@media (max-width: 720px) {
  .client-header-clean {
    width: calc(100% - 18px);
    gap: 10px;
    align-items: center;
  }

  .client-logo-clean {
    width: 112px;
    max-height: 38px;
  }

  .client-brand-copy-clean {
    padding-left: 10px;
  }

  .client-brand-copy-clean strong {
    font-size: 15px;
  }

  .client-brand-copy-clean small {
    display: block;
    font-size: 10px;
  }

  .header-quotes-link {
    padding-inline: 8px;
    font-size: 11px;
  }

  .profile-menu-clean summary {
    width: 40px;
    height: 40px;
  }

  .product-page-topbar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-page-topbar .ui-button {
    width: 100%;
  }

  .product-hero-card {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 14px;
  }

  .product-detail-photo {
    min-height: 200px;
  }

  .product-detail-copy h1 {
    font-size: 21px;
    line-height: 1.15;
  }

  .product-detail-copy p {
    font-size: 14px;
    line-height: 1.5;
  }

  .feature-row {
    grid-template-columns: 1fr 1fr;
  }

  .feature-row span {
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #e5ebf4;
    border-radius: 12px;
    background: #fbfcff;
  }

  .config-card {
    padding: 14px;
  }

  .config-grid.four {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .config-grid.four .span-two,
  .config-grid.two .span-two {
    grid-column: 1 / -1;
  }

  .config-grid.two {
    grid-template-columns: 1fr;
  }

  .field > span,
  .config-section h2,
  .finalize-form-card h2,
  .proposal-summary-v2 h2 {
    line-height: 1.3;
  }

  .quantity-field > div {
    min-height: 48px;
  }

  .choice-grid {
    grid-template-columns: 1fr;
  }

  .choice-grid.electronics,
  .choice-grid.options {
    grid-template-columns: 1fr;
  }

  .calculation-card {
    padding: 16px;
  }

  .calculation-card h2 {
    margin-bottom: 0;
    font-size: 20px;
  }

  .summary-page-heading {
    gap: 10px;
    margin-bottom: 14px;
  }

  .summary-page-heading h1,
  .page-title-block h1 {
    font-size: 28px;
    line-height: 1.1;
  }

  .summary-page-heading p,
  .page-title-block p {
    font-size: 14px;
    line-height: 1.45;
  }

  .summary-title-meta {
    gap: 8px;
  }

  .summary-title-meta small {
    width: 100%;
  }

  .summary-table-card {
    overflow: hidden;
  }

  .summary-item-row {
    grid-template-columns: 1fr 72px;
    gap: 10px;
    padding: 14px;
  }

  .summary-product-cell {
    grid-column: 1 / 3;
    align-items: start;
  }

  .summary-product-v2 {
    gap: 3px;
  }

  .summary-product-v2 a {
    margin-top: 4px;
  }

  .summary-discount-cell,
  .summary-distributor-discount,
  .summary-final-value {
    padding: 10px 10px 8px;
    border: 1px solid #e5ebf4;
    border-radius: 12px;
    background: #fbfcfe;
  }

  .summary-distributor-discount {
    align-content: start;
  }

  .summary-quantity-v2 input {
    width: 64px;
    min-height: 42px;
    border-radius: 11px;
  }

  .summary-observation-v2 input {
    min-height: 44px;
    border-radius: 11px;
    font-size: 13px;
  }

  .summary-actions-v2 {
    gap: 8px;
  }

  .summary-actions-v2 .icon-button {
    width: 42px;
    height: 42px;
    border-radius: 11px;
  }

  .item-discount-editor {
    margin: 0 14px 14px;
    border-radius: 14px;
  }

  .item-discount-controls {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .item-discount-stepper {
    min-height: 44px;
  }

  .proposal-summary-v2 {
    position: static;
    display: grid;
    gap: 12px;
    padding: 16px;
  }

  .proposal-summary-v2 > div,
  .quote-facts-compact > div {
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid #e5ebf4;
    border-radius: 12px;
    background: #fbfcfe;
  }

  .order-discount-card,
  .summary-observation-card {
    padding: 14px;
    border-radius: 16px;
  }

  .order-discount-card-head {
    display: grid;
    gap: 8px;
  }

  .order-discount-main-card .order-discount-fields {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .order-discount-main-card .order-discount-or {
    padding: 0;
    text-align: center;
  }

  .summary-observation-card .ui-button {
    width: 100%;
  }

  .finalize-form-card {
    padding: 16px 14px;
  }

  .finalize-form-card .config-grid.two {
    gap: 12px;
  }

  .quote-facts-compact {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .client-header-clean {
    width: calc(100% - 14px);
    gap: 8px;
  }

  .client-logo-clean {
    width: 98px;
    max-height: 34px;
  }

  .client-brand-copy-clean {
    padding-left: 8px;
  }

  .client-brand-copy-clean strong {
    font-size: 14px;
  }

  .client-brand-copy-clean small {
    font-size: 9px;
  }

  .header-quotes-link {
    min-height: 38px;
    padding-inline: 7px;
    font-size: 10px;
  }

  .product-page-topbar {
    grid-template-columns: 1fr;
  }

  .product-detail-photo {
    min-height: 180px;
  }

  .feature-row {
    grid-template-columns: 1fr;
  }

  .config-grid.four {
    grid-template-columns: 1fr;
  }

  .quantity-field {
    grid-column: 1 / -1;
  }

  .summary-page-heading h1,
  .page-title-block h1 {
    font-size: 22px;
  }

  .summary-item-row {
    grid-template-columns: 1fr;
  }

  .summary-product-cell,
  .summary-observation-v2,
  .summary-actions-v2 {
    grid-column: 1;
  }

  .summary-quantity-v2,
  .summary-discount-cell,
  .summary-distributor-discount,
  .summary-final-value,
  .summary-observation-v2,
  .summary-actions-v2 {
    grid-column: 1;
    grid-row: auto;
  }

  .summary-quantity-v2 {
    justify-items: start;
  }

  .summary-actions-v2 {
    justify-content: flex-start;
  }

  .summary-finalized-notice {
    margin-bottom: 14px;
  }

  .proposal-summary-v2 .ui-button,
  .product-config-actions .ui-button,
  .finalize-form-card .ui-button,
  .product-page-topbar .ui-button {
    width: 100%;
  }

  .client-shell-home {
    padding-bottom: 112px;
  }

  .client-shell-home .mobile-cart-bar {
    grid-template-columns: 1fr auto;
    align-items: end;
  }

  .client-shell-home .mobile-cart-bar > div {
    grid-column: 1 / 2;
  }

  .client-shell-home .mobile-cart-bar > strong {
    grid-column: 2 / 3;
    align-self: center;
    font-size: 14px;
  }

  .client-shell-home .mobile-cart-bar a,
  .client-shell-home .mobile-cart-bar button {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }
}

/* Ajustes pontuais 2026-08-10 */
.dimension-limit-warning {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #f3b4b4;
  border-radius: 10px;
  color: #b42318;
  background: #fff5f5;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.dimension-limit-warning[hidden] { display: none !important; }
.proposal-document-brand img {
  width: 100px;
  height: auto;
  max-height: 34px;
  object-fit: contain;
}
.preview-brand img {
  width: 90px;
  height: auto;
  max-height: 30px;
  object-fit: contain;
}

/* Administração: edição de preços e tamanhos da revisão vigente */
.product-price-admin { margin-top: 18px; }
.product-price-groups { display: grid; gap: 16px; margin-top: 14px; }
.product-price-group { overflow: hidden; border: 1px solid #dfe6ef; border-radius: 14px; background: #fff; }
.product-price-group-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border-bottom: 1px solid #e7ecf3; background: #f8faff; }
.product-price-group-head > div { display: grid; gap: 3px; }
.product-price-group-head span { color: #667085; font-size: 11px; font-weight: 700; }
.product-price-group-head strong { color: #17223d; font-size: 15px; }
.product-price-inline-form { display: grid; grid-template-columns: 34px minmax(120px, 180px); align-items: stretch; max-width: 220px; overflow: hidden; border: 1px solid #cfd8e6; border-radius: 9px; background: #fff; }
.product-price-inline-form .product-price-prefix { display: grid; place-items: center; color: #667085; background: #f4f6f9; font-size: 12px; font-weight: 700; }
.product-price-inline-form input { min-width: 0; height: 38px; padding: 7px 10px; border: 0; outline: 0; color: #17223d; background: #fff; font: inherit; }
.prototype-primary-btn.compact { min-height: 38px; padding: 7px 11px; }
.prototype-secondary-btn.is-danger { border-color: #efb5b5; color: #b42318; background: #fff7f7; }
.prototype-secondary-btn.is-danger:hover { border-color: #df8d8d; color: #8f1b13; background: #fff0f0; }
.admin-alert-info { border: 1px solid #c9daf9; color: #285ba8; background: #f7faff; }
@media (max-width: 720px) {
  .product-price-group-head { align-items: flex-start; flex-direction: column; }
  .product-price-group-head form, .product-price-group-head .prototype-secondary-btn { width: 100%; }
  .product-price-inline-form { max-width: none; min-width: 180px; }
}

/* ===== Mobile UX polish: header + resumo da oportunidade - 2026-08-10 ===== */
.summary-mobile-label { display:none; }
.summary-zero-discount { color:#667085 !important; }
.summary-quantity-control { display:flex; align-items:center; justify-content:center; gap:5px; }
.summary-action-button {
  display:inline-grid;
  width:34px;
  height:34px;
  place-items:center;
  padding:0;
  border:1px solid #cbd5e1;
  border-radius:9px;
  background:#fff;
  color:#31547f;
  font:inherit;
  font-size:0;
  font-weight:800;
  cursor:pointer;
}
.summary-action-button.save::before { content:'✓'; font-size:15px; }
.summary-action-button.danger { border-color:#efc4c4; color:#b42318; background:#fffafa; }
.summary-action-button.danger::before { content:'×'; font-size:20px; line-height:1; }

@media (max-width: 760px) {
  /* Cabeçalho: no celular ficam apenas logo + acessos, sempre na mesma linha. */
  .client-header-shell-clean { backdrop-filter:blur(10px); }
  .client-header-clean {
    width:calc(100% - 18px) !important;
    min-height:64px !important;
    padding:8px 0 !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:8px !important;
  }
  .client-brand-clean {
    flex:0 1 auto !important;
    min-width:0 !important;
    gap:0 !important;
  }
  .client-logo-clean {
    width:116px !important;
    max-width:116px !important;
    max-height:40px !important;
  }
  .client-brand-copy-clean { display:none !important; }
  .client-header-actions-clean {
    flex:0 0 auto !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:6px !important;
    margin-left:auto !important;
  }
  .header-quotes-link {
    min-height:38px !important;
    padding:0 8px !important;
    border:0 !important;
    border-radius:9px !important;
    background:transparent !important;
    color:#244366 !important;
    font-size:11px !important;
    white-space:nowrap !important;
  }
  .profile-menu-clean summary {
    width:38px !important;
    height:38px !important;
    flex:0 0 38px !important;
  }

  /* Um único card por item. As informações internas usam divisórias simples,
     evitando o efeito de vários cards concorrendo dentro do mesmo produto. */
  .summary-table-v2 {
    display:grid !important;
    gap:12px !important;
    overflow:visible !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .summary-table-head { display:none !important; }
  .summary-item-v2 {
    overflow:hidden !important;
    border:1px solid #dfe6ef !important;
    border-radius:16px !important;
    background:#fff !important;
    box-shadow:0 4px 14px rgba(25,55,95,.045) !important;
  }
  .summary-item-v2:last-child { border-bottom:1px solid #dfe6ef !important; }
  .summary-item-row {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:0 !important;
    padding:0 !important;
    align-items:stretch !important;
  }
  .summary-product-cell {
    grid-column:1 / -1 !important;
    grid-row:auto !important;
    grid-template-columns:76px minmax(0,1fr) !important;
    gap:12px !important;
    align-items:center !important;
    padding:14px !important;
    border-bottom:1px solid #edf1f6 !important;
  }
  .summary-photo-v2 {
    width:76px !important;
    height:72px !important;
    border-radius:11px !important;
  }
  .summary-product-v2 strong {
    font-size:15px !important;
    line-height:1.25 !important;
  }
  .summary-product-v2 small {
    line-height:1.35 !important;
  }
  .summary-product-v2 a {
    margin-top:4px !important;
    font-size:11px !important;
  }

  .summary-mobile-label {
    display:block !important;
    margin:0 0 5px !important;
    color:#667085 !important;
    font-size:10px !important;
    line-height:1.2 !important;
    font-weight:750 !important;
    text-transform:none !important;
  }
  .summary-metric {
    grid-row:auto !important;
    min-width:0 !important;
    display:block !important;
    align-content:start !important;
    padding:12px 14px !important;
    border:0 !important;
    border-bottom:1px solid #edf1f6 !important;
    border-radius:0 !important;
    background:#fff !important;
  }
  .summary-quantity-v2 {
    grid-column:1 !important;
    justify-items:stretch !important;
    border-right:1px solid #edf1f6 !important;
  }
  .summary-quantity-control {
    justify-content:flex-start !important;
    gap:6px !important;
  }
  .summary-quantity-v2 input {
    width:62px !important;
    min-height:38px !important;
    padding:7px !important;
    border-radius:9px !important;
    text-align:center !important;
  }
  .summary-quantity-v2 small { font-size:11px !important; }

  .summary-discount-cell {
    grid-column:2 !important;
  }
  .summary-distributor-discount {
    grid-column:1 !important;
    border-right:1px solid #edf1f6 !important;
  }
  .summary-final-value {
    grid-column:2 !important;
  }
  .summary-discount-cell strong,
  .summary-distributor-discount strong,
  .summary-final-value strong {
    display:block !important;
    margin:0 !important;
    font-size:15px !important;
    line-height:1.25 !important;
  }
  .summary-discount-cell small,
  .summary-distributor-discount small,
  .summary-final-value small {
    display:block !important;
    margin-top:3px !important;
    color:#7b8798 !important;
    font-size:9px !important;
    line-height:1.3 !important;
  }
  .summary-add-discount,
  .summary-edit-discount {
    width:auto !important;
    max-width:100% !important;
    margin-top:7px !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:var(--eko-blue) !important;
    font-size:10px !important;
    line-height:1.3 !important;
    font-weight:800 !important;
    text-decoration:none !important;
    text-align:left !important;
  }

  .summary-observation-v2 {
    grid-column:1 / -1 !important;
    grid-row:auto !important;
    display:block !important;
    padding:12px 14px !important;
    border-bottom:1px solid #edf1f6 !important;
  }
  .summary-observation-v2 input {
    width:100% !important;
    min-height:42px !important;
    padding:9px 10px !important;
    border-radius:10px !important;
    font-size:13px !important;
  }

  .summary-actions-v2 {
    grid-column:1 / -1 !important;
    grid-row:auto !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    justify-content:stretch !important;
    padding:11px 14px 13px !important;
  }
  .summary-action-button {
    width:100% !important;
    height:42px !important;
    padding:0 10px !important;
    border-radius:10px !important;
    font-size:11px !important;
  }
  .summary-action-button::before { content:none !important; }
  .summary-action-button.save {
    border-color:#b9d0f5 !important;
    color:var(--eko-blue) !important;
    background:#f7faff !important;
  }
  .summary-action-button.danger {
    border-color:#f0cccc !important;
    color:#b42318 !important;
    background:#fffafa !important;
  }

  /* Editor de desconto vira uma área complementar do próprio item, não outro card. */
  .item-discount-editor {
    margin:0 !important;
    padding:14px !important;
    border:0 !important;
    border-top:1px solid #cfe0fb !important;
    border-radius:0 !important;
    background:#f7faff !important;
  }
  .item-discount-editor-head {
    margin-bottom:12px !important;
    gap:10px !important;
  }
  .item-discount-editor-head strong {
    color:#173d72 !important;
    font-size:12px !important;
  }
  .item-discount-editor-head small {
    margin-top:2px !important;
    font-size:10px !important;
    line-height:1.4 !important;
  }
  .item-discount-close {
    width:32px !important;
    height:32px !important;
    flex:0 0 32px !important;
    padding:0 !important;
    border:1px solid #d8e3f5 !important;
    border-radius:9px !important;
    background:#fff !important;
    font-size:17px !important;
  }
  .item-discount-controls {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }
  .item-discount-controls > span {
    font-size:10px !important;
  }
  .item-discount-stepper {
    min-height:44px !important;
    border-radius:10px !important;
  }
  .item-discount-money {
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    padding:10px 12px !important;
    border:1px solid #dbe6f5 !important;
    border-radius:10px !important;
    background:#fff !important;
  }
  .item-discount-money small { font-size:10px !important; }
  .item-discount-money strong { font-size:14px !important; }
  .item-discount-controls .ui-button {
    width:100% !important;
    min-height:42px !important;
    border-radius:10px !important;
  }
}

@media (max-width: 400px) {
  .client-logo-clean {
    width:102px !important;
    max-width:102px !important;
  }
  .header-quotes-link {
    padding-inline:5px !important;
    font-size:10px !important;
  }
  .profile-menu-clean summary {
    width:36px !important;
    height:36px !important;
    flex-basis:36px !important;
  }
  .summary-product-cell {
    grid-template-columns:68px minmax(0,1fr) !important;
    padding:12px !important;
  }
  .summary-photo-v2 {
    width:68px !important;
    height:66px !important;
  }
  .summary-metric {
    padding:11px 12px !important;
  }
  .summary-actions-v2 {
    padding-inline:12px !important;
  }
}

/* ========================================================================== 
   UX GUIADO DO DISTRIBUIDOR — revisão 2026-08-10
   Objetivo: reduzir carga cognitiva, manter uma única ação principal por etapa
   e garantir leitura/toque confortáveis em celular, tablet e desktop.
   ========================================================================== */

:root {
  --ux-blue: #1F5FD1;
  --ux-blue-dark: #174BA7;
  --ux-blue-soft: #eef4ff;
  --ux-ink: #13213b;
  --ux-muted: #5f6f87;
  --ux-line: #dce4ef;
  --ux-soft: #f7f9fc;
  --ux-success: #14804a;
  --ux-success-soft: #eefaf3;
  --ux-danger: #b42318;
  --ux-danger-soft: #fff4f2;
}

.client-body {
  color: var(--ux-ink);
  background: #f5f7fb;
}

.client-body .ui-button,
.client-body button,
.client-body a,
.client-body input,
.client-body select,
.client-body textarea {
  -webkit-tap-highlight-color: transparent;
}

.client-body .ui-button {
  font-weight: 800;
}

.client-body .field input,
.client-body .field select,
.client-body .field textarea {
  min-height: 46px;
}

.client-body .field textarea { min-height: 104px; }
.client-body .field > span:first-child { color: #344054; font-size: 14px; }
.client-body .field > span small { color: var(--ux-muted); font-weight: 600; }

.ui-alert-success {
  border: 1px solid #a9dfc0;
  color: #12653c;
  background: var(--ux-success-soft);
}

.ui-alert-success strong { color: #0f5b35; }

/* Cabeçalho: desktop completo; mobile em uma única linha. */
.client-header-shell-clean {
  box-shadow: 0 1px 0 rgba(16, 36, 68, .02);
}

.client-header-clean {
  min-height: 82px;
}

.client-brand-clean { min-width: 0; }
.client-brand-copy-clean strong { white-space: nowrap; }
.client-brand-copy-clean small { display: block; line-height: 1.3; }

.header-quotes-link {
  gap: 7px;
  border: 1px solid transparent;
}

.header-quotes-icon {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  color: var(--ux-blue);
  font-size: 16px;
  line-height: 1;
}

/* Fluxo em quatro etapas: sempre mostra ao usuário onde ele está. */
.client-flow-steps {
  width: min(1640px, calc(100% - 32px));
  margin: 14px auto 0;
  border: 1px solid var(--ux-line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(20, 50, 90, .035);
  overflow: hidden;
}

.client-flow-steps ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.client-flow-steps li {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 68px;
  align-items: center;
  gap: 11px;
  padding: 11px 16px;
  border-right: 1px solid #edf0f5;
  color: #7b8798;
}

.client-flow-steps li:last-child { border-right: 0; }

.flow-step-number {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border: 2px solid #d4dbe6;
  border-radius: 50%;
  color: #6f7b8d;
  background: #fff;
  font-size: 13px;
  font-weight: 900;
}

.flow-step-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.flow-step-copy strong {
  color: inherit;
  font-size: 14px;
  line-height: 1.2;
}

.flow-step-copy small {
  overflow: hidden;
  color: #8a95a6;
  font-size: 11px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-flow-steps li.done { color: #315a91; background: #fbfdff; }
.client-flow-steps li.done .flow-step-number {
  border-color: #b8cef0;
  color: var(--ux-blue);
  background: #f4f8ff;
}

.client-flow-steps li.current {
  color: var(--ux-blue-dark);
  background: var(--ux-blue-soft);
}

.client-flow-steps li.current::after {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: var(--ux-blue);
  content: "";
}

.client-flow-steps li.current .flow-step-number {
  border-color: var(--ux-blue);
  color: #fff;
  background: var(--ux-blue);
}

.client-flow-steps li.current .flow-step-copy small { color: #58749d; }

/* Títulos e instruções comuns. */
.eyebrow {
  color: var(--ux-blue);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
}

.section-help {
  max-width: 680px;
  margin: 5px 0 0;
  color: var(--ux-muted);
  font-size: 14px;
  line-height: 1.45;
}

.page-title-block h1,
.summary-page-heading h1,
.finalize-heading h1 {
  color: var(--ux-ink);
}

.page-title-block p,
.summary-page-heading p,
.finalize-heading p {
  max-width: 760px;
  color: var(--ux-muted);
  line-height: 1.55;
}

/* HOME / CATÁLOGO */
.client-shell-home { margin-top: 14px; }

.client-shell-home .region-panel-home {
  border-color: var(--ux-line);
  box-shadow: none;
}

.client-shell-home .section-title-row { align-items: flex-start; }
.client-shell-home .section-title-row h1 { margin-bottom: 0; }

.client-shell-home .revision-note {
  padding: 8px 11px;
  border: 1px solid #d5e2f7;
  border-radius: 999px;
  color: #3d5f8f;
  background: #f7faff;
  font-weight: 750;
}

.catalog-next-step-prompt {
  display: flex;
  min-height: 110px;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  border: 1px dashed #b9c9df;
  border-radius: 16px;
  background: #fbfcfe;
}

.catalog-next-step-prompt > span {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--ux-blue);
  font-weight: 900;
}

.catalog-next-step-prompt > div { display: grid; gap: 4px; }
.catalog-next-step-prompt strong { font-size: 16px; }
.catalog-next-step-prompt small { color: var(--ux-muted); font-size: 13px; line-height: 1.4; }

.catalog-add-success {
  margin: 0 0 12px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.45;
}

.catalog-guidance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 4px 0 12px;
}

.catalog-guidance > div { display: grid; gap: 2px; }
.catalog-guidance strong { font-size: 17px; }
.catalog-guidance small { color: var(--ux-muted); font-size: 13px; }

.client-shell-home .catalog-search-prototype label,
.client-shell-home .ui-button-filter {
  border-color: #d5deea;
  box-shadow: none;
}

.client-shell-home .catalog-search-prototype label:focus-within {
  border-color: var(--ux-blue);
  box-shadow: 0 0 0 3px rgba(31,95,209,.11);
}

.client-shell-home .category-tabs-prototype.category-tabs-scroll a {
  font-weight: 750;
}

.client-shell-home .catalog-card-home {
  border-color: #dfe6ef;
  box-shadow: 0 5px 18px rgba(20, 50, 90, .045);
}

.client-shell-home .catalog-card-home .catalog-copy .ui-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--ux-blue);
  font-weight: 850;
}

/* Orçamento atual */
.opportunity-card-prototype {
  border-color: #d9e1ec;
  box-shadow: 0 8px 24px rgba(20, 50, 90, .07);
}

.opportunity-head-prototype strong { font-size: 18px; }
.opportunity-head-prototype small { font-size: 12px; }
.cart-section-title strong { font-size: 14px; }
.cart-empty { padding: 24px 12px; }
.cart-empty strong { font-size: 15px; }
.cart-empty small { max-width: 220px; line-height: 1.45; }
.cart-totals-prototype .grand strong { font-size: 21px; }
.opportunity-body-prototype .ui-button-big { min-height: 50px; font-size: 15px; }

/* PRODUTO / CONFIGURAÇÃO */
.client-shell-product {
  width: min(1280px, calc(100% - 32px));
  margin-top: 16px;
}

.product-page-topbar {
  min-height: 42px;
  margin-bottom: 12px;
}

.product-back-link {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  color: var(--ux-blue);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.product-edit-context {
  color: var(--ux-muted);
  font-size: 13px;
  font-weight: 650;
}

.product-hero-card {
  border-color: var(--ux-line);
  box-shadow: none;
}

.product-detail-copy h1 { color: var(--ux-ink); }
.product-detail-copy p { color: var(--ux-muted); }

.optional-title {
  color: var(--ux-muted);
  font-size: .72em;
  font-weight: 650;
}

.config-card {
  border-color: var(--ux-line);
  box-shadow: none;
}

.config-section {
  padding: 18px 0;
  border-bottom: 1px solid #edf0f5;
}

.config-section:first-child { padding-top: 2px; }
.config-section:last-child { border-bottom: 0; padding-bottom: 2px; }
.config-section h2 { margin: 0 0 13px; color: var(--ux-ink); }

.choice-card {
  border-color: #d7e0ec;
  box-shadow: none;
}

.choice-card:has(input:checked) {
  border-color: #78a5f5;
  color: #174fae;
  background: #f5f9ff;
  box-shadow: 0 0 0 1px rgba(31,95,209,.08);
}

.dimension-limit-warning {
  margin-top: 10px;
  padding: 11px 13px;
  border: 1px solid #f0aaa4;
  border-radius: 10px;
  color: #a62a20;
  background: #fff5f3;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}

.calculation-card {
  border-color: #cdddf7;
  border-top: 4px solid var(--ux-blue);
  box-shadow: 0 8px 24px rgba(20, 50, 90, .07);
}

.calculation-heading { display: grid; gap: 3px; margin-bottom: 5px; }
.calculation-heading h2 { margin: 0; }
.calculation-heading small { color: var(--ux-muted); font-size: 11px; line-height: 1.4; }
.calculation-total {
  margin-top: 2px;
  padding-top: 14px;
  border-top: 1px solid #dfe5ee;
}
.calculation-total span { font-size: 15px; font-weight: 800; }
.calculation-total strong { font-size: 26px; }

.product-config-actions { gap: 10px; margin-top: 4px; }
.product-primary-action { min-height: 52px; font-size: 15px; }
.product-secondary-link {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}
.product-secondary-link:hover { color: var(--ux-blue); }

/* REVISÃO DO ORÇAMENTO — um card por item, sem "cards dentro de cards". */
.client-shell-summary {
  width: min(1500px, calc(100% - 32px));
  margin-top: 16px;
}

.review-layout {
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: start;
  gap: 22px;
}

.review-main { display: grid; gap: 16px; min-width: 0; }
.review-items-section { display: grid; gap: 10px; }
.review-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  padding: 0 2px;
}
.review-section-heading h2 { margin: 0; font-size: 18px; }
.review-section-heading p { margin: 3px 0 0; color: var(--ux-muted); font-size: 12px; }
.review-add-more { min-height: 42px; padding: 8px 13px; }

.review-items-list { display: grid; gap: 12px; }
.review-item {
  overflow: hidden;
  border: 1px solid var(--ux-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 4px 15px rgba(20, 50, 90, .035);
}

.review-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 18px 14px;
}

.review-product {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.review-product-photo {
  display: grid;
  width: 90px;
  height: 78px;
  place-items: center;
  overflow: hidden;
  border-radius: 12px;
  background: #f4f6f9;
}
.review-product-photo img { width: 100%; height: 100%; object-fit: contain; }
.review-product-copy { display: grid; gap: 6px; min-width: 0; }
.review-product-copy h3 { margin: 0; color: var(--ux-ink); font-size: 17px; line-height: 1.25; }
.review-product-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.review-product-tags span {
  padding: 3px 7px;
  border-radius: 999px;
  color: #58687f;
  background: #f1f4f8;
  font-size: 10px;
  font-weight: 700;
}
.review-edit-config {
  width: max-content;
  max-width: 100%;
  color: var(--ux-blue);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.review-edit-config:hover { text-decoration: underline; }

.review-item-total {
  display: grid;
  min-width: 165px;
  gap: 2px;
  text-align: right;
}
.review-item-total span { color: var(--ux-muted); font-size: 11px; font-weight: 700; }
.review-item-total strong { color: var(--ux-blue); font-size: 21px; line-height: 1.2; }
.review-item-total small { color: #7a8799; font-size: 10px; }

.review-item-controls {
  display: grid;
  grid-template-columns: 128px minmax(180px, .8fr) minmax(190px, .9fr) minmax(240px, 1.35fr);
  gap: 0;
  padding: 0 18px;
  border-top: 1px solid #edf0f5;
  border-bottom: 1px solid #edf0f5;
}

.review-field,
.review-info-block {
  display: grid;
  min-width: 0;
  align-content: center;
  gap: 4px;
  padding: 13px 15px;
  border-right: 1px solid #edf0f5;
}
.review-item-controls > :first-child { padding-left: 0; }
.review-item-controls > :last-child { padding-right: 0; border-right: 0; }

.review-field > span,
.review-info-block > span {
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
}
.review-field > span small { font-size: 10px; font-weight: 600; }
.review-info-block strong { color: var(--ux-ink); font-size: 15px; }
.review-info-block.automatic strong { color: var(--ux-success); }
.review-info-block.distributor strong { color: var(--ux-blue); }
.review-info-block small { color: #7a8798; font-size: 10px; line-height: 1.35; }

.review-quantity-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  min-height: 42px;
  overflow: hidden;
  border: 1px solid #d7e0eb;
  border-radius: 10px;
  background: #fff;
}
.review-quantity-control input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  text-align: center;
  font-weight: 800;
}
.review-quantity-control small {
  display: grid;
  place-items: center;
  color: #7b8797;
  background: #f5f7fa;
  font-size: 10px;
}

.review-observation-field input {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #d7e0eb;
  border-radius: 10px;
  outline: 0;
  font-size: 13px;
}
.review-observation-field input:focus {
  border-color: var(--ux-blue);
  box-shadow: 0 0 0 3px rgba(31,95,209,.1);
}

.review-link-button {
  width: max-content;
  max-width: 100%;
  padding: 0;
  border: 0;
  color: var(--ux-blue);
  background: transparent;
  font: inherit;
  font-size: 11px;
  font-weight: 850;
  text-decoration: underline;
  cursor: pointer;
}

.review-item-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 10px 18px 12px;
}
.review-save-button {
  min-height: 40px;
  padding: 7px 12px;
  color: #315a91;
  font-size: 11px;
}
.review-remove-button {
  min-height: 40px;
  padding: 7px 4px;
  border: 0;
  color: #9d3028;
  background: transparent;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.review-remove-button:hover { color: var(--ux-danger); text-decoration: underline; }

.review-discount-editor {
  margin: 0 18px 16px;
  padding: 14px;
  border: 1px solid #bcd2f5;
  border-radius: 12px;
  background: #f6f9ff;
}
.review-discount-editor[hidden] { display: none !important; }
.review-discount-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.review-discount-head > div { display: grid; gap: 3px; }
.review-discount-head strong { color: #1d4f99; font-size: 13px; }
.review-discount-head small { max-width: 600px; color: #64748b; font-size: 11px; line-height: 1.4; }
.review-discount-controls {
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(150px, .65fr) auto;
  align-items: end;
  gap: 14px;
}
.review-discount-controls label { display: grid; gap: 5px; }
.review-discount-controls label > span,
.review-discount-value > span { color: #52627a; font-size: 11px; font-weight: 750; }
.review-discount-value { display: grid; gap: 5px; }
.review-discount-value strong { min-height: 42px; padding: 10px 0; color: var(--ux-blue); }
.review-discount-controls .ui-button { min-height: 42px; }

.advanced-discount-card {
  overflow: hidden;
  border: 1px solid var(--ux-line);
  border-radius: 14px;
  background: #fff;
}
.advanced-discount-card > summary {
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 16px;
  list-style: none;
  cursor: pointer;
}
.advanced-discount-card > summary::-webkit-details-marker { display: none; }
.advanced-discount-card > summary > span:first-child { display: grid; gap: 3px; }
.advanced-discount-card > summary strong { font-size: 13px; }
.advanced-discount-card > summary small { color: var(--ux-muted); font-size: 10px; line-height: 1.4; }
.advanced-discount-current {
  flex: 0 0 auto;
  color: var(--ux-blue);
  font-size: 12px;
  font-weight: 850;
}
.advanced-discount-card[open] > summary { border-bottom: 1px solid #e9edf3; background: #fbfcfe; }
.advanced-discount-card .order-discount-card { border: 0; border-radius: 0; background: #fff; }

.review-general-note { padding: 16px 18px; box-shadow: none; }
.review-general-note h2 { margin: 0; font-size: 16px; }
.review-general-note h2 small { color: var(--ux-muted); font-size: 11px; font-weight: 650; }
.review-general-note p { color: var(--ux-muted); font-size: 11px; }
.review-general-note textarea { font-size: 14px; }
.review-general-note .ui-button { min-height: 42px; }

.review-summary-card {
  top: 104px;
  padding: 18px;
  border-color: #cad9f1;
  border-top: 4px solid var(--ux-blue);
  box-shadow: 0 8px 24px rgba(20,50,90,.07);
}
.review-summary-head { display: grid; gap: 2px; margin-bottom: 4px; }
.review-summary-head h2 { margin: 0; font-size: 19px; }
.review-summary-line {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid #edf0f5;
  font-size: 13px !important;
}
.review-summary-line span { color: #52627a; }
.review-summary-line strong { color: var(--ux-ink); }
.review-summary-line.discount strong { color: var(--ux-success); }
.review-grand-total {
  display: flex !important;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin: 6px 0 4px;
  padding: 15px 0 12px;
  border-top: 1px solid #d7e0eb;
  border-bottom: 0;
}
.review-grand-total span { font-size: 15px; font-weight: 850; }
.review-grand-total strong { color: var(--ux-blue); font-size: 25px; }
.review-primary-cta { min-height: 52px; margin-top: 4px; font-size: 14px; }
.review-back-products {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  color: #607086;
  font-size: 12px;
  font-weight: 750;
  text-decoration: none;
}
.review-back-products:hover { color: var(--ux-blue); }

/* DADOS DO CLIENTE */
.client-shell-finalize { width: min(1320px, calc(100% - 32px)); }
.finalize-heading { margin-bottom: 14px; }
.finalize-layout-guided { grid-template-columns: minmax(0, .9fr) minmax(430px, .75fr); gap: 22px; }
.finalize-form-guided { padding: 20px; border-color: var(--ux-line); box-shadow: none; }

.distribution-context {
  display: grid;
  gap: 3px;
  margin-bottom: 20px;
  padding: 12px 14px;
  border: 1px solid #d6e2f4;
  border-radius: 12px;
  background: #f7faff;
}
.distribution-context span { color: #607089; font-size: 11px; font-weight: 750; }
.distribution-context strong { color: #244f8d; font-size: 14px; }

.form-section-heading {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 2px 0 14px;
}
.form-section-number {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--ux-blue);
  font-size: 12px;
  font-weight: 900;
}
.form-section-heading > div { display: grid; gap: 3px; }
.form-section-heading h2 { margin: 0; font-size: 17px; }
.form-section-heading p { margin: 0; color: var(--ux-muted); font-size: 11px; line-height: 1.45; }
.confirm-heading { margin-top: 22px; padding-top: 18px; border-top: 1px solid #edf0f5; }

.finalize-client-grid { gap: 13px; }
.finalize-client-grid .field input { font-size: 15px; }
.field-with-suffix {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px;
  overflow: hidden;
  border: 1px solid var(--ux-line);
  border-radius: 11px;
  background: #fff;
}
.field-with-suffix:focus-within { border-color: var(--ux-blue); box-shadow: 0 0 0 3px rgba(31,95,209,.1); }
.field-with-suffix input { min-height: 46px !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.field-with-suffix > span { display: grid; place-items: center; color: #68778c; background: #f5f7fa; font-size: 11px; font-weight: 750; }

.finalize-check-card {
  display: grid;
  grid-template-columns: 1.25fr 1fr .55fr;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid #d6e0ee;
  border-radius: 13px;
}
.finalize-check-card > div {
  display: grid;
  gap: 4px;
  padding: 13px 14px;
  border-right: 1px solid #e7ebf1;
}
.finalize-check-card > div:last-child { border-right: 0; }
.finalize-check-card span { color: #69778b; font-size: 10px; font-weight: 750; }
.finalize-check-card strong { color: var(--ux-ink); font-size: 14px; }
.finalize-check-card > div:first-child strong { color: var(--ux-blue); font-size: 20px; }

.finalize-primary-action { min-height: 54px; font-size: 15px; }
.finalize-back-link {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  margin-top: 6px;
  color: #607086;
  font-size: 12px;
  font-weight: 750;
  text-decoration: none;
}
.finalize-back-link:hover { color: var(--ux-blue); }

.document-preview-guided {
  position: sticky;
  top: 104px;
  padding: 12px;
  border: 1px solid #d7e0eb;
  background: #eef2f7;
}
.preview-caption { display: grid; gap: 2px; padding: 4px 4px 11px; }
.preview-caption span { color: #344054; font-size: 12px; font-weight: 850; }
.preview-caption small { color: #758296; font-size: 10px; }

/* ORÇAMENTO GERADO */
.client-shell-generated { width: min(1180px, calc(100% - 32px)); }
.generated-success-card {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 22px;
  border: 1px solid #b6dec7;
  border-radius: 18px;
  background: linear-gradient(135deg, #f3fbf6, #fff 72%);
  box-shadow: 0 7px 24px rgba(20, 80, 55, .055);
}
.generated-success-card.expired { border-color: #efd7a6; background: linear-gradient(135deg,#fff9ec,#fff 72%); }
.generated-success-icon {
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--ux-success);
  font-size: 25px;
  font-weight: 900;
}
.generated-success-card.expired .generated-success-icon { background: #b7791f; }
.generated-success-copy { display: grid; gap: 5px; min-width: 0; }
.generated-success-copy h1 { margin: 0; color: #163326; font-size: 25px; }
.generated-success-card.expired h1 { color: #6c4714; }
.generated-success-copy > p { margin: 0; color: #607068; font-size: 13px; line-height: 1.45; }
.generated-meta { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 7px; }
.generated-meta > span { display: grid; gap: 1px; }
.generated-meta small { color: #758277; font-size: 9px; font-weight: 750; text-transform: uppercase; }
.generated-meta strong { color: #263e32; font-size: 13px; }
.generated-actions { display: grid; min-width: 190px; gap: 8px; }
.generated-actions .ui-button { min-height: 46px; }
.generated-download { font-size: 14px; }
.generated-history-link { text-align: center; color: #567064; font-size: 11px; font-weight: 750; text-decoration: none; }
.generated-history-link:hover { color: var(--ux-blue); }
.generated-secondary-actions { padding: 12px 4px 0; text-align: center; }
.generated-secondary-actions a { color: #5c6d83; font-size: 11px; font-weight: 700; }

.generated-document-details {
  margin-top: 14px;
  overflow: hidden;
  border: 1px solid var(--ux-line);
  border-radius: 15px;
  background: #fff;
}
.generated-document-details > summary {
  display: grid;
  min-height: 62px;
  align-content: center;
  gap: 2px;
  padding: 12px 16px;
  list-style: none;
  cursor: pointer;
}
.generated-document-details > summary::-webkit-details-marker { display: none; }
.generated-document-details > summary span { color: #294a78; font-size: 13px; font-weight: 850; }
.generated-document-details > summary small { color: #718095; font-size: 10px; }
.generated-document-details[open] > summary { border-bottom: 1px solid #e8edf4; background: #fbfcfe; }
.generated-document-details .proposal-document { margin: 0; border: 0; border-radius: 0; box-shadow: none; }

/* HISTÓRICO */
.history-heading h1 { color: var(--ux-ink); }
.history-heading p { color: var(--ux-muted); }
.history-filters a { min-height: 42px; display: inline-flex; align-items: center; }
.history-card { border-color: var(--ux-line); box-shadow: 0 3px 12px rgba(20,50,90,.035); }
.history-card-actions .ui-button { min-height: 42px; }

/* Tablet */
@media (max-width: 1120px) {
  .review-layout { grid-template-columns: 1fr; }
  .review-summary-card { position: static; }
  .review-item-controls { grid-template-columns: 120px 1fr 1fr; }
  .review-observation-field { grid-column: 1 / -1; padding-left: 0; border-top: 1px solid #edf0f5; border-right: 0; }
  .review-item-controls > :nth-child(3) { border-right: 0; }
  .finalize-layout-guided { grid-template-columns: minmax(0, 1fr) 420px; }
}

@media (max-width: 900px) {
  .client-flow-steps { width: min(100% - 20px, 1640px); }
  .flow-step-copy small { display: none; }
  .client-flow-steps li { min-height: 58px; padding: 9px 12px; }

  .finalize-layout-guided { grid-template-columns: 1fr; }
  .document-preview-guided { display: none; }

  .generated-success-card { grid-template-columns: 52px minmax(0,1fr); }
  .generated-actions { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; min-width: 0; }
  .generated-history-link { grid-column: 1 / -1; }
}

/* Celular */
@media (max-width: 720px) {
  .client-header-clean {
    width: calc(100% - 16px) !important;
    min-height: 64px !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    padding: 7px 0 !important;
  }

  .client-brand-clean {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    gap: 0 !important;
  }

  .client-logo-clean {
    width: 108px !important;
    max-width: 108px !important;
    max-height: 38px !important;
  }

  .client-brand-copy-clean { display: none !important; }

  .client-header-actions-clean {
    flex: 0 0 auto !important;
    gap: 5px !important;
  }

  .header-quotes-link {
    min-height: 38px !important;
    padding: 0 7px !important;
    border-color: #dfe6ef !important;
    border-radius: 10px !important;
    font-size: 10px !important;
  }

  .header-quotes-icon { width: 16px; height: 16px; font-size: 13px; }
  .profile-menu-clean summary { width: 38px !important; height: 38px !important; }

  .client-flow-steps {
    width: calc(100% - 16px);
    margin-top: 8px;
    border-radius: 12px;
  }

  .client-flow-steps li {
    min-height: 52px;
    justify-content: center;
    gap: 6px;
    padding: 7px 5px;
  }

  .flow-step-number {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
    border-width: 1.5px;
    font-size: 10px;
  }

  .flow-step-copy strong { font-size: 10px; }
  .flow-step-copy small { display: none; }

  .client-shell,
  .client-shell-home,
  .client-shell-product,
  .client-shell-summary,
  .client-shell-finalize,
  .client-shell-generated {
    width: calc(100% - 16px) !important;
    margin-top: 10px !important;
  }

  .page-title-block h1,
  .summary-page-heading h1,
  .finalize-heading h1 { font-size: 24px !important; }

  .page-title-block p,
  .summary-page-heading p,
  .finalize-heading p { font-size: 14px; line-height: 1.5; }

  /* Home */
  .client-shell-home .region-panel-home { padding: 14px !important; }
  .client-shell-home .section-title-row { display: grid; gap: 8px; }
  .client-shell-home .section-title-row h1 { font-size: 19px !important; }
  .section-help { font-size: 13px; }
  .client-shell-home .revision-note { width: max-content; max-width: 100%; font-size: 10px !important; }

  .client-shell-home .region-card-select {
    min-height: 112px !important;
    padding: 10px 7px !important;
  }
  .client-shell-home .region-card-select .region-label { font-size: 14px !important; font-weight: 800; }

  .catalog-next-step-prompt { min-height: 94px; padding: 14px; }
  .catalog-next-step-prompt > span { width: 36px; height: 36px; flex-basis: 36px; }
  .catalog-next-step-prompt strong { font-size: 14px; }
  .catalog-next-step-prompt small { font-size: 12px; }

  .catalog-guidance { margin-top: 2px; }
  .catalog-guidance strong { font-size: 16px; }
  .catalog-guidance small { font-size: 12px; }

  .client-shell-home .catalog-search-prototype label,
  .client-shell-home .catalog-search-prototype input,
  .client-shell-home .ui-button-filter { min-height: 48px !important; }
  .client-shell-home .catalog-search-prototype input { font-size: 16px !important; }
  .client-shell-home .ui-button-filter { font-size: 12px !important; }
  .client-shell-home .category-tabs-prototype.category-tabs-scroll a { min-height: 44px !important; font-size: 13px !important; }

  /* Lista compacta de produtos: foto legível, nome/preço/ação no mesmo card. */
  .client-shell-home .catalog-grid-home { grid-template-columns: 1fr !important; gap: 10px !important; }
  .client-shell-home .catalog-card-home {
    display: grid !important;
    grid-template-columns: 40% minmax(0, 1fr) !important;
    padding: 8px !important;
    border-radius: 14px !important;
  }
  .client-shell-home .catalog-card-home .catalog-photo {
    width: 100% !important;
    height: 100% !important;
    min-height: 145px !important;
    aspect-ratio: auto !important;
    padding: 8px !important;
    border-radius: 11px !important;
    background: #f5f7fa !important;
  }
  .client-shell-home .catalog-card-home .catalog-copy {
    align-content: center;
    gap: 5px !important;
    padding: 5px 5px 5px 11px !important;
  }
  .client-shell-home .catalog-card-home .catalog-badges { order: 1; }
  .client-shell-home .catalog-card-home .catalog-copy h2 { order: 2; font-size: 16px !important; line-height: 1.25; }
  .client-shell-home .catalog-card-home .catalog-copy p {
    order: 3;
    display: -webkit-box !important;
    margin: 0;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 11px !important;
    line-height: 1.35 !important;
  }
  .client-shell-home .catalog-card-home .catalog-price { order: 4; }
  .client-shell-home .catalog-card-home .catalog-price small { font-size: 10px !important; }
  .client-shell-home .catalog-card-home .catalog-price strong { font-size: 19px !important; }
  .client-shell-home .catalog-card-home .catalog-copy .ui-button {
    order: 5;
    min-height: 42px !important;
    margin-top: 2px !important;
    padding: 7px 10px !important;
    font-size: 12px !important;
  }

  .client-shell-home { padding-bottom: 122px !important; }
  .client-shell-home .mobile-cart-bar {
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 7px !important;
    padding: 10px !important;
    border: 1px solid #8fb4f4 !important;
    border-radius: 14px !important;
  }
  .client-shell-home .mobile-cart-bar > div span { font-size: 12px !important; }
  .client-shell-home .mobile-cart-bar > strong { font-size: 15px !important; }
  .client-shell-home .mobile-cart-bar a,
  .client-shell-home .mobile-cart-bar button {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-height: 44px !important;
    font-size: 12px !important;
  }

  /* Produto */
  .product-page-topbar { margin-bottom: 8px; }
  .product-edit-context { display: none; }
  .product-back-link { min-height: 40px; font-size: 13px; }
  .product-hero-card { padding: 12px !important; border-radius: 14px !important; }
  .product-detail-photo { min-height: 190px !important; border-radius: 12px; }
  .product-detail-copy h1 { font-size: 22px !important; }
  .product-detail-copy p { font-size: 14px !important; line-height: 1.5; }
  .feature-row { grid-template-columns: 1fr !important; gap: 7px !important; }
  .feature-row span { min-height: 42px !important; padding: 9px 11px !important; font-size: 12px; }

  .config-card { padding: 14px !important; border-radius: 14px !important; }
  .config-section { padding: 16px 0; }
  .config-section h2 { font-size: 17px !important; }
  .config-grid.four,
  .config-grid.two { grid-template-columns: 1fr !important; gap: 11px !important; }
  .choice-grid,
  .choice-grid.electronics,
  .choice-grid.options { grid-template-columns: 1fr !important; gap: 8px !important; }
  .choice-card { min-height: 52px !important; padding: 11px 12px !important; font-size: 13px; }
  .client-shell-product .field input,
  .client-shell-product .field select,
  .client-shell-product .field textarea { font-size: 16px !important; min-height: 48px; }
  .quantity-field > div { min-height: 48px !important; }

  .calculation-card { padding: 15px !important; border-radius: 14px !important; }
  .calculation-heading h2 { font-size: 19px !important; }
  .calculation-card > div:not(.product-config-actions):not(.calculation-heading) { font-size: 13px !important; }
  .calculation-total strong { font-size: 24px !important; }
  .product-primary-action { min-height: 52px !important; font-size: 14px !important; }
  .product-secondary-link { min-height: 42px; font-size: 12px; }

  /* Revisar orçamento */
  .summary-page-heading { gap: 8px !important; margin-bottom: 12px !important; }
  .summary-title-meta { gap: 6px !important; }
  .summary-title-meta small { width: 100%; font-size: 10px !important; }
  .review-layout { gap: 14px; }
  .review-section-heading { align-items: flex-start; }
  .review-section-heading h2 { font-size: 17px; }
  .review-add-more { min-height: 40px; padding: 7px 9px; font-size: 11px; }

  .review-item { border-radius: 14px; }
  .review-item-top {
    align-items: flex-start;
    gap: 10px;
    padding: 13px;
  }
  .review-product { grid-template-columns: 72px minmax(0, 1fr); gap: 10px; }
  .review-product-photo { width: 72px; height: 68px; border-radius: 10px; }
  .review-product-copy h3 { font-size: 15px; }
  .review-product-tags span { font-size: 9px; }
  .review-edit-config { font-size: 11px; }
  .review-item-total { min-width: 110px; }
  .review-item-total strong { font-size: 17px; }
  .review-item-total small { font-size: 9px; }

  .review-item-controls {
    grid-template-columns: 1fr !important;
    padding: 0 13px !important;
  }
  .review-field,
  .review-info-block {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 3px 10px;
    padding: 12px 0 !important;
    border-right: 0 !important;
    border-top: 1px solid #edf0f5;
  }
  .review-item-controls > :first-child { border-top: 0; }
  .review-field > span,
  .review-info-block > span { grid-column: 1; grid-row: 1; font-size: 12px; }
  .review-info-block strong { grid-column: 2; grid-row: 1; font-size: 15px; text-align: right; }
  .review-info-block small { grid-column: 1 / -1; grid-row: 2; font-size: 10px; }
  .review-link-button { grid-column: 1 / -1; grid-row: 3; min-height: 34px; font-size: 11px; }
  .review-quantity-control { grid-column: 2; grid-row: 1 / 3; width: 92px; min-height: 42px; }
  .review-observation-field { display: grid; grid-template-columns: 1fr; }
  .review-observation-field > span { grid-column: 1; }
  .review-observation-field input { grid-column: 1; min-height: 46px; font-size: 14px; }

  .review-item-actions {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    padding: 10px 13px 12px;
  }
  .review-save-button { min-height: 42px; font-size: 11px; }
  .review-remove-button { min-height: 42px; padding-inline: 8px; font-size: 11px; }

  .review-discount-editor { margin: 0 13px 13px; padding: 12px; }
  .review-discount-head strong { font-size: 12px; }
  .review-discount-controls { grid-template-columns: 1fr !important; gap: 10px; }
  .review-discount-controls .ui-button { min-height: 46px; }

  .advanced-discount-card > summary { padding: 11px 13px; }
  .advanced-discount-card > summary strong { font-size: 12px; }
  .advanced-discount-card > summary small { font-size: 10px; }
  .order-discount-main-card .order-discount-fields { grid-template-columns: 1fr !important; }
  .order-discount-main-card .order-discount-or { padding: 0 !important; }
  .order-discount-main-card .order-discount-apply { min-height: 46px; }

  .review-general-note { padding: 13px; }
  .review-general-note textarea { font-size: 16px; }
  .review-general-note .ui-button { width: 100%; min-height: 44px; }

  .review-summary-card { padding: 15px !important; border-radius: 14px !important; }
  .review-summary-head h2 { font-size: 18px; }
  .summary-payment-select select { min-height: 48px !important; font-size: 16px !important; }
  .review-summary-line { font-size: 12px !important; }
  .review-grand-total strong { font-size: 24px; }
  .review-primary-cta { min-height: 52px !important; font-size: 13px !important; }

  /* Dados do cliente */
  .finalize-form-guided { padding: 14px !important; border-radius: 14px !important; }
  .distribution-context { margin-bottom: 16px; }
  .form-section-heading h2 { font-size: 16px; }
  .form-section-heading p { font-size: 11px; }
  .finalize-client-grid { grid-template-columns: 1fr !important; }
  .finalize-client-grid .field { grid-column: 1 !important; }
  .finalize-client-grid .field input { min-height: 50px !important; font-size: 16px !important; }
  .finalize-check-card { grid-template-columns: 1fr !important; }
  .finalize-check-card > div { border-right: 0; border-bottom: 1px solid #e7ebf1; }
  .finalize-check-card > div:last-child { border-bottom: 0; }
  .finalize-primary-action { min-height: 54px !important; font-size: 14px !important; }

  /* Gerado */
  .generated-success-card {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 12px;
    padding: 15px;
    border-radius: 14px;
  }
  .generated-success-icon { width: 46px; height: 46px; font-size: 20px; }
  .generated-success-copy h1 { font-size: 20px; }
  .generated-success-copy > p { font-size: 12px; }
  .generated-meta { grid-column: 1 / -1; gap: 12px; }
  .generated-meta > span { flex: 1 1 90px; }
  .generated-actions {
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .generated-actions .ui-button { width: 100%; min-height: 48px; }
  .generated-history-link { min-height: 38px; display: grid; place-items: center; }
  .generated-secondary-actions { padding-top: 10px; }
  .generated-document-details > summary { min-height: 58px; }

  /* Histórico */
  .history-heading { display: grid !important; gap: 12px; }
  .history-heading .ui-button { width: 100%; min-height: 48px; }
  .history-filters { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 5px; scrollbar-width: none; }
  .history-filters::-webkit-scrollbar { display: none; }
  .history-filters a { flex: 0 0 auto; min-height: 40px; padding: 7px 10px; font-size: 11px; }
  .history-card { grid-template-columns: 1fr !important; gap: 10px !important; padding: 13px !important; }
  .history-card-main { align-items: flex-start; }
  .history-icon { width: 38px; height: 38px; flex: 0 0 38px; }
  .history-card-value { align-items: flex-start !important; text-align: left !important; }
  .history-card-actions .ui-button { width: 100%; min-height: 44px; }
}

@media (max-width: 420px) {
  .client-logo-clean { width: 98px !important; max-width: 98px !important; }
  .header-quotes-link { padding-inline: 6px !important; }
  .header-quotes-prefix { display: none; }
  .header-quotes-icon { display: none; }

  .client-flow-steps li { gap: 4px; padding-inline: 3px; }
  .flow-step-number { width: 25px; height: 25px; flex-basis: 25px; }
  .flow-step-copy strong { font-size: 9px; }

  .client-shell-home .catalog-card-home { grid-template-columns: 38% minmax(0,1fr) !important; }
  .client-shell-home .catalog-card-home .catalog-photo { min-height: 135px !important; }
  .client-shell-home .catalog-card-home .catalog-copy p { display: none !important; }

  .review-section-heading { display: grid; }
  .review-add-more { width: max-content; }
  .review-item-top { display: grid; grid-template-columns: 1fr; }
  .review-item-total { width: 100%; min-width: 0; padding-top: 10px; border-top: 1px solid #edf0f5; text-align: left; }
  .review-item-total strong { font-size: 20px; }
  .review-item-actions { grid-template-columns: 1fr; }
  .review-remove-button { border: 1px solid #f0cbc7; border-radius: 10px; background: #fff8f7; }

  .generated-meta { display: grid; grid-template-columns: 1fr 1fr; }
  .generated-meta > span:last-child { grid-column: 1 / -1; }
}

@media (hover: none) and (pointer: coarse) {
  .client-body .ui-button,
  .client-body button,
  .client-body a { touch-action: manipulation; }
}

/* Correção final do cabeçalho mobile: regras antigas definiam flex-direction:column. */
@media (max-width: 720px) {
  .client-header-clean {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    height: auto !important;
  }
  .client-brand-clean {
    width: auto !important;
    margin: 0 !important;
    justify-content: flex-start !important;
  }
  .client-header-actions-clean {
    width: auto !important;
    margin-left: auto !important;
    justify-content: flex-end !important;
  }
}

/* O resumo lateral usa linhas simples; remove caixas internas herdadas de regras antigas. */
.proposal-summary-v2.review-summary-card > .review-summary-line,
.proposal-summary-v2.review-summary-card > .review-grand-total {
  min-height: 0 !important;
  padding: 10px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #edf0f5 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.proposal-summary-v2.review-summary-card > .review-grand-total {
  padding: 15px 0 10px !important;
  border-top: 1px solid #d8e0ea !important;
  border-bottom: 0 !important;
}

/* Ajustes de especificidade na configuração: o resumo precisa manter fluxo vertical. */
.calculation-card > .calculation-heading {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-content: initial !important;
  gap: 3px !important;
}
.calculation-card > .product-config-actions {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-content: initial !important;
  gap: 8px !important;
}
@media (max-width: 720px) {
  .product-detail-copy p {
    display: -webkit-box !important;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    margin: 10px 0 !important;
  }
  .calculation-card > .product-config-actions .product-secondary-link {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 420px) {
  .header-quotes-link { font-size: 12px !important; }
  .flow-step-copy strong { font-size: 10px !important; }
}


/* ===== Legibilidade e facilidade de uso — distribuidores / telas touch =====
   Última passagem UX: aumenta textos funcionais, alvos de toque e contraste sem
   alterar a lógica da aplicação nem transformar a interface em um layout gigante. */
@media (max-width: 720px) {
  .client-body { line-height: 1.45; }

  .section-help,
  .catalog-guidance small,
  .page-title-block p,
  .summary-page-heading p,
  .finalize-heading p { font-size: 13px !important; }

  .client-flow-steps li { min-height: 54px !important; }
  .flow-step-copy strong { font-size: 11px !important; }

  .client-shell-home .category-tabs-prototype.category-tabs-scroll a {
    min-height: 44px !important;
    font-size: 13px !important;
  }
  .client-shell-home .catalog-card-home .catalog-copy h2 { font-size: 16px !important; }
  .client-shell-home .catalog-card-home .catalog-price small { font-size: 12px !important; }
  .client-shell-home .catalog-card-home .catalog-price strong { font-size: 20px !important; }
  .client-shell-home .catalog-card-home .catalog-copy .ui-button { min-height: 46px !important; font-size: 13px !important; }

  .client-shell-home .mobile-cart-bar > div span { font-size: 13px !important; }
  .client-shell-home .mobile-cart-bar small { font-size: 11px !important; }
  .client-shell-home .mobile-cart-bar > strong { font-size: 15px !important; }
  .client-shell-home .mobile-cart-bar a,
  .client-shell-home .mobile-cart-bar button { min-height: 46px !important; font-size: 13px !important; }

  .product-back-link { min-height: 44px; font-size: 14px !important; }
  .config-section h2 { font-size: 18px !important; }
  .client-body .field > span:first-child { font-size: 14px !important; }
  .choice-card { min-height: 54px !important; }
  .choice-card > span { font-size: 14px !important; }
  .choice-card > span small { font-size: 11px !important; }
  .dimension-limit-warning { font-size: 13px !important; }
  .calculation-heading small { font-size: 12px !important; }

  .review-product-copy h3 { font-size: 16px !important; }
  .review-product-tags span { font-size: 10px !important; }
  .review-edit-config { min-height: 30px; display: inline-flex; align-items: center; font-size: 12px !important; }
  .review-item-total span { font-size: 12px !important; }
  .review-item-total strong { font-size: 20px !important; }
  .review-item-total small { font-size: 10px !important; }
  .review-field > span,
  .review-info-block > span { font-size: 13px !important; }
  .review-info-block strong { font-size: 16px !important; }
  .review-info-block small { font-size: 11px !important; }
  .review-link-button { min-height: 38px !important; font-size: 12px !important; }
  .review-save-button,
  .review-remove-button { min-height: 46px !important; font-size: 12px !important; }
  .review-discount-head strong { font-size: 13px !important; }
  .review-discount-head small { font-size: 11px !important; }
  .advanced-discount-card > summary { min-height: 58px; }
  .advanced-discount-card > summary strong { font-size: 13px !important; }
  .advanced-discount-card > summary small { font-size: 11px !important; }
  .review-general-note p { font-size: 12px !important; }
  .review-summary-line { font-size: 13px !important; }
  .review-primary-cta { min-height: 54px !important; font-size: 14px !important; }

  .distribution-context span { font-size: 12px !important; }
  .distribution-context strong { font-size: 15px !important; }
  .form-section-heading h2 { font-size: 17px !important; }
  .form-section-heading p { font-size: 12px !important; }
  .finalize-check-card span { font-size: 11px !important; }
  .finalize-check-card strong { font-size: 15px !important; }

  .history-card-main strong { font-size: 15px !important; }
  .history-card-main p { font-size: 13px !important; }
  .history-card-main small { font-size: 11px !important; }
}

@media (max-width: 420px) {
  .header-quotes-label { font-size: 12px !important; }
  .review-save-button,
  .review-remove-button { font-size: 13px !important; }
}

/* Administração: inclusão manual de tamanho/preço e regiões sem preço - 2026-08-10 */
.product-add-size-card {
  margin: 14px 0 18px;
  overflow: hidden;
  border: 1px solid #c9daf9;
  border-radius: 14px;
  background: #fbfdff;
}
.product-add-size-card > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
  color: #174ba7;
  background: #f4f8ff;
}
.product-add-size-card > summary::-webkit-details-marker { display: none; }
.product-add-size-card > summary span { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; }
.product-add-size-card > summary small { color: #667085; font-size: 11px; font-weight: 600; }
.product-add-size-form {
  display: grid;
  grid-template-columns: minmax(170px, 220px) minmax(220px, 280px) auto;
  gap: 14px;
  align-items: end;
  padding: 16px;
}
.product-add-size-form label { display: grid; gap: 6px; }
.product-add-size-form label > span { color: #344054; font-size: 12px; font-weight: 800; }
.product-add-size-form label > small { color: #667085; font-size: 10px; line-height: 1.35; }
.product-add-size-form input {
  width: 100%;
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid #cfd8e6;
  border-radius: 10px;
  outline: none;
  background: #fff;
  color: #17223d;
  font: inherit;
}
.product-add-size-form input:focus,
.product-price-inline-form:focus-within { border-color: #4e84df; box-shadow: 0 0 0 3px rgba(31,95,209,.10); }
.product-price-missing { background: #fffdf8; }
.product-price-missing td:first-child { position: relative; }
.product-price-status {
  display: block;
  width: max-content;
  margin-top: 4px;
  padding: 3px 7px;
  border-radius: 999px;
  color: #9a5b00;
  background: #fff1cf;
  font-size: 9px;
  font-weight: 800;
}
.product-price-missing .product-price-inline-form { border-style: dashed; border-color: #e0b970; }
@media (max-width: 900px) {
  .product-add-size-form { grid-template-columns: 1fr 1fr; }
  .product-add-size-form .prototype-primary-btn { grid-column: 1 / -1; width: 100%; }
}
@media (max-width: 620px) {
  .product-add-size-card > summary { align-items: flex-start; flex-direction: column; }
  .product-add-size-form { grid-template-columns: 1fr; }
  .product-add-size-form .prototype-primary-btn { grid-column: auto; }
}

/* ===== Responsividade final da seleção de regiões - 2026-09-04 =====
   Evita estouro de nomes em larguras intermediárias quando o painel "Orçamento atual"
   reduz o espaço útil da coluna principal. Mantém os quatro cards na mesma linha sempre
   que houver espaço real e reduz mapa/gap antes de quebrar para 2 colunas. */
.client-shell-home .home-main-column,
.client-shell-home .region-panel-home,
.client-shell-home .region-grid-cards,
.client-shell-home .region-card-select,
.client-shell-home .region-card-select .region-label {
  min-width: 0;
}

.client-shell-home .region-grid-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 1vw, 16px);
}

.client-shell-home .region-card-select {
  overflow: hidden;
  min-height: 120px;
  padding: 14px clamp(10px, 1.05vw, 16px);
  gap: clamp(8px, .8vw, 12px);
}

.client-shell-home .region-card-select .region-figure-wrap {
  width: clamp(58px, 5.6vw, 86px);
  min-width: 0;
  flex: 0 1 clamp(58px, 5.6vw, 86px);
}

.client-shell-home .region-card-select .region-symbol {
  width: clamp(56px, 5vw, 78px);
  height: clamp(48px, 4.4vw, 62px);
  max-width: 100%;
}

.client-shell-home .region-card-select .region-label {
  display: block;
  flex: 1 1 auto;
  max-width: 100%;
  font-size: clamp(13px, 1.05vw, 16px);
  line-height: 1.2;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  text-align: left;
}

/* Abaixo desta largura a composição 4x1 deixa de ser confortável ao lado do carrinho. */
@media (min-width: 1081px) and (max-width: 1220px) {
  .client-shell-home .region-grid-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .client-shell-home .region-card-select .region-figure-wrap {
    width: 82px;
    flex-basis: 82px;
  }

  .client-shell-home .region-card-select .region-symbol {
    width: 70px;
    height: 56px;
  }
}

@media (max-width: 1080px) {
  .client-shell-home .region-grid-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .client-shell-home .region-card-select {
    overflow: visible;
  }

  .client-shell-home .region-card-select .region-label {
    font-size: 14px;
  }
}

@media (max-width: 700px) {
  .client-shell-home .region-card-select .region-label {
    text-align: center;
    overflow-wrap: anywhere;
  }
}

/* Categorias: nunca deixa a última opção "cortada" sem possibilidade de acesso.
   O componente continua rolável horizontalmente, com área de respiro no fim. */
.client-shell-home .category-tabs-prototype.category-tabs-scroll {
  max-width: 100%;
  min-width: 0;
  padding-right: 14px;
  scroll-padding-inline: 2px 14px;
}

.client-shell-home .category-tabs-prototype.category-tabs-scroll::after {
  content: '';
  flex: 0 0 2px;
}

/* Auditoria da importação: cinco indicadores sem comprimir o conteúdo. */
.prototype-stats-grid.prototype-stats-grid-compact {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.import-removal-audit { margin-bottom: 20px; }
.import-removal-audit .prototype-card-head small {
  display: block;
  max-width: 760px;
  margin-top: 4px;
  color: var(--proto-muted);
  line-height: 1.45;
}
@media (max-width: 1450px) {
  .prototype-stats-grid.prototype-stats-grid-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .prototype-stats-grid.prototype-stats-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .prototype-stats-grid.prototype-stats-grid-compact { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Eko'7 Orçamento - alinhamento do rodapé dos cards de produto (2026-09-04)
   Mantém preço e CTA centralizados e no rodapé, independentemente do tamanho
   de nome/descrição do produto.
   ========================================================================== */
.client-shell-home .catalog-card-home .catalog-price {
  width: 100%;
  justify-items: center;
  align-items: center;
  text-align: center;
}

.client-shell-home .catalog-card-home .catalog-copy .ui-button {
  justify-content: center !important;
  text-align: center;
  margin-inline: auto;
}

/* Em cards verticais, o conteúdo textual pode variar de altura. O auto margin
   empurra preço + CTA para a base e deixa os cards visualmente alinhados. */
@media (min-width: 721px) {
  .client-shell-home .catalog-card-home {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  .client-shell-home .catalog-card-home .catalog-photo {
    flex: 0 0 auto;
  }

  .client-shell-home .catalog-card-home .catalog-copy {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
  }

  .client-shell-home .catalog-card-home .catalog-price {
    margin-top: auto !important;
  }
}

/* No layout compacto/mobile, preserva foto + conteúdo lado a lado e apenas
   centraliza a zona de preço/ação dentro da coluna de conteúdo. */
@media (max-width: 720px) {
  .client-shell-home .catalog-card-home .catalog-price {
    justify-self: stretch;
  }

  .client-shell-home .catalog-card-home .catalog-copy .ui-button {
    width: 100%;
  }
}

/* Box: a opção de bipartição só existe para larguras abaixo de 1,40 m. */
.choice-card[data-bipartition-card][hidden],
.config-section[data-optionals-section][hidden] {
  display: none !important;
}


/* ==========================================================================
   Eko'7 Orçamento - seletor de condição de pagamento no carrinho (2026-09-10)
   Dropdown próprio para manter o padrão visual da interface em todos os
   navegadores, sem depender do menu nativo do <select>.
   ========================================================================== */
.payment-selector {
  position: relative;
  margin-bottom: 16px;
}
.payment-selector .payment-slab {
  width: 100%;
  margin-bottom: 0;
  text-align: left;
  font: inherit;
}
.payment-slab-select {
  position: relative;
  cursor: pointer;
  appearance: none;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.payment-slab-select:hover {
  border-color: #9fbcec;
  background: #fbfdff;
}
.payment-slab-select:focus-visible,
.payment-selector.is-open .payment-slab-select {
  outline: none;
  border-color: var(--eko-blue);
  box-shadow: 0 0 0 3px rgba(31,95,209,.12);
}
.payment-selector.is-updating {
  opacity: .68;
  pointer-events: none;
}
.payment-slab-chevron {
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  color: #667085;
  transition: color .15s ease, transform .18s ease;
}
.payment-slab-chevron .bi {
  width: 16px;
  height: 16px;
  background-color: currentColor !important;
}
.payment-slab-select:hover .payment-slab-chevron,
.payment-selector.is-open .payment-slab-chevron {
  color: var(--eko-blue);
}
.payment-selector.is-open .payment-slab-chevron {
  transform: rotate(180deg);
}
.payment-menu {
  position: relative;
  z-index: 1;
  margin-top: 8px;
  padding: 6px;
  border: 1px solid #d7e0ed;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(16,24,40,.16);
}
.payment-menu[hidden] {
  display: none !important;
}
.payment-menu-option {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px 9px 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #344054;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.payment-menu-option:hover,
.payment-menu-option:focus-visible {
  outline: none;
  color: var(--eko-blue);
  background: #f1f6ff;
}
.payment-menu-option.is-selected {
  color: var(--eko-blue);
  background: #edf4ff;
}
.payment-menu-check {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border-radius: 7px;
  color: transparent;
}
.payment-menu-option.is-selected .payment-menu-check {
  color: var(--eko-blue);
}
.payment-menu-check .bi {
  width: 15px;
  height: 15px;
  background-color: currentColor !important;
}


/* ========================================================================== 
   Eko'7 Orçamento - refinamento do seletor de pagamento (2026-09-10)
   Ícones independentes da fonte Bootstrap Icons para evitar o quadrado de
   fallback em navegadores/ambientes onde o glyph do chevron/check não existe.
   ========================================================================== */
.payment-slab-chevron {
  border-radius: 999px;
  background: #f3f7fd;
}
.payment-slab-chevron::before {
  content: "";
  width: 8px;
  height: 8px;
  display: block;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-1px, -1px);
  transform-origin: center;
}
.payment-slab-select:hover .payment-slab-chevron,
.payment-selector.is-open .payment-slab-chevron {
  background: #eaf2ff;
}
.payment-selector.is-open .payment-slab-chevron {
  transform: rotate(180deg);
}
.payment-slab-chevron .bi {
  display: none !important;
}
.payment-menu-check {
  font-size: 13px;
  line-height: 1;
  font-weight: 900;
  color: transparent;
  background: transparent;
  transition: color .15s ease, background-color .15s ease;
}
.payment-menu-option.is-selected .payment-menu-check {
  color: var(--eko-blue);
  background: #dce9ff;
}
.payment-menu-check .bi {
  display: none !important;
}
