/* Locarti refinement: restrained motion, consistent feedback and touch targets. */
:root { --ease-out: cubic-bezier(.22,1,.36,1); --motion-fast: 160ms; --motion-normal: 220ms; }
.topbar { background: var(--brand-primary-deep); }
.ai-link .icon { color: var(--brand-accent); }
.hero-offer a { color: var(--brand-accent-foreground); }
.hero h1,.hero p { color: #fff; }
.sidebar nav a.active { box-shadow: inset 3px 0 var(--brand-accent); }
.quick-registration-note { font-size: 13px; color: var(--muted); margin-bottom: 24px; }
.auth-box .field .helptext { display: block; font-size: 12px; color: var(--muted); margin-top: 8px; }
.auth-admin-link { display: block; text-align: center; margin-top: 20px; font-size: 13px; }
.selection-empty { margin: 24px auto; max-width: 420px; padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.selection-empty .button { margin-top: 12px; }
.checkout-identity { margin-bottom: 24px; }
html { scroll-padding-top: calc(var(--top) + var(--header) + 24px); }
:target, input, select, textarea, button, a { scroll-margin-block: 24px 110px; }
body { -webkit-font-smoothing: antialiased; }
button:disabled { cursor: default; }
[aria-busy=true] button { cursor: progress; }
.button, .icon-btn, .text-button, .favorite-btn, .share-btn, .sidebar nav a, .term-choice, .client-option {
  transition: color var(--motion-fast), background-color var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast);
}
.button:active:not(:disabled), .icon-btn:active { transform: translateY(1px); }
.button:focus-visible { outline-offset: 4px; }
.searchbox:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px #25226012; }
.searchbox input { outline: none; }
.product-card { transition: border-color var(--motion-normal), box-shadow var(--motion-normal); }
.card-image img { object-fit: contain; border-radius: 10px; }
.card-image { min-height:0;overflow:hidden; }
.card-image>a { position:absolute;inset:8px 12px 0;display:block; }
.card-image>a>img { width:100%;height:100%;object-fit:contain; }
.product-name { text-wrap: pretty; }
.product-card .favorite-btn.selected { background: var(--primary); color: #fff; }
.quantity-control:focus-within { border-color: var(--primary); }
.quantity-control button:disabled { color: #87949d; }
.term-choice:has(input:checked), .client-option:has(input:checked) { border-color: var(--primary); background: var(--brand-soft); }
.field:has([aria-invalid=true]) input { border-color: #b42335; }
.errorlist { color: #a12032; }
.auth-signature { color: #526675; }
.form-error { color: #a12032; font-size: 14px; }
.breadcrumbs a { min-height: 36px; display: inline-flex; align-items: center; }
.table-scroll { scrollbar-width: thin; scrollbar-color: #c7c4dc transparent; }
.carousel-controls .carousel-dot,.carousel-controls .carousel-dot[aria-current=true]{width:24px;height:24px;min-height:24px;background:transparent;display:grid;place-items:center;padding:0}
.carousel-dot::before{content:"";width:6px;height:6px;border-radius:8px;background:#a3b3bc}
.carousel-dot[aria-current=true]::before{width:14px;background:var(--primary)}
.sidebar { overscroll-behavior: contain; }
.menu-open { overflow: hidden; }
.sidebar nav a[aria-current=page] { background: var(--brand-soft); color: var(--primary); }
.toast:not([hidden]) { animation: toast-enter 200ms var(--ease-out); }
dialog[open] { animation: dialog-enter 200ms var(--ease-out); }
dialog[open]::backdrop { animation: backdrop-enter 160ms ease-out; }
.cart-badge.is-updated { animation: cart-update 260ms var(--ease-out); }
.auth-box, .selection-card { animation: content-enter 240ms var(--ease-out); }
.motion-reveal { animation: content-enter 320ms var(--ease-out) both; }
@keyframes toast-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dialog-enter { from { opacity: 0; transform: translateY(8px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes content-enter { from { opacity: .5; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes cart-update { 40% { transform: scale(1.22); } 100% { transform: scale(1); } }
@media (hover:hover) and (pointer:fine) {
  .product-card:hover { border-color: var(--brand-line); box-shadow: 0 5px 18px #2522600a; }
  .quantity-control button:hover { background: var(--brand-soft); }
}
.public-header-logo { display: flex; align-items: center; flex: none; }
.public-header-logo img { width: 155px; height: 58px; object-fit: contain; }
.portal-public .sidebar, .portal-public .mobile-menu, .portal-public .mobile-bottom-nav,
.portal-public .ai-link, .portal-public .header-cart { display: none; }
.portal-public .main-header { left: 0; padding-inline: max(24px,calc((100vw - 1456px) / 2 + 24px)); }
.portal-public .main { margin-left: 0; }
.portal-public .content-wrap { max-width: 1456px; margin-inline: auto; }
.portal-public .searchbox { max-width: 850px; }
.portal-public .public-welcome { padding-block: 10px; }
.portal-public .floating-chat { bottom: 24px; }
@media(max-width:800px) {
  .product-meta { font-size: 11px; }
  .field input, .field select, .field textarea { font-size: 16px; }
  .term-choice { min-height: 52px; padding: 14px 12px; }
  .quantity-control { min-height: 46px; }
  .quantity-control button { min-width: 44px; min-height: 44px; }
  .quantity-control input { min-width: 20px; }
  .share-btn, .product-card .favorite-btn { width: 44px; height: 44px; }
  .share-btn { right: 50px; }
  .product-card .favorite-btn { right: 6px; }
  .product-detail-actions .favorite-btn { min-height: 44px; }
  .mobile-bottom-nav>a, .mobile-bottom-nav>button { min-width: 44px; min-height: 44px; }
  .mobile-bottom-nav { bottom: max(10px,env(safe-area-inset-bottom)); }
}
@media(max-width:540px) {
  .topbar>span { display: none; }
  .portal-public .main-header { height: var(--header); padding: 8px 16px; flex-wrap: wrap; gap: 4px 12px; }
  .portal-public .public-header-logo { flex: 1; }
  .portal-public .public-header-logo img { width: 125px; height: 42px; }
  .portal-public .main-header>.button { margin-left: auto; }
  .portal-public .searchbox { flex: 1 0 100%; order: 3; height: 40px; }
  .portal-public .main { padding-bottom: 0; }
  .portal-public .content-wrap { padding-top: 18px; }
  .portal-public .hero { margin-bottom: 28px; }
  .public-welcome { gap: 8px; font-size: 12px; }
  .product-card .card-body { padding-inline: 12px; }
  .product-card .card-brand { max-width: calc(100% - 94px); overflow: hidden; text-overflow: ellipsis; }
  .product-card .button { min-height: 42px; font-size: 12px; padding-inline: 8px; }
  .unit-select { min-height: 38px; }
  .product-name { font-size: 14px; line-height: 21px; min-height: 42px; }
  .product-meta { font-size: 11px; }
  .benefits { grid-template-columns: 1fr 1fr; gap: 24px 12px; }
  .benefits>div { min-width: 0; }
  .benefits strong { font-size: 13px; }
  .benefits small { font-size: 11px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none!important; transition: none!important; }
}

.pix-code{display:block;width:min(220px,100%);height:auto;margin:12px auto;background:#fff;border-radius:8px}
.account-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.portal-error{min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center}.portal-error main{width:min(620px,100%)}.portal-error img{object-fit:contain}.portal-error .error-code{font-size:64px;line-height:1;font-weight:800;color:var(--primary);margin:32px 0 16px}.portal-error h1{font-size:clamp(24px,5vw,32px)}.portal-error .button{margin:16px 0}
@media(max-width:760px){.account-two-column{grid-template-columns:1fr}.category-bar>a:first-child{display:flex;max-width:none;width:100%;justify-content:center}}
@media(max-width:760px){.portal-public .main-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px}.portal-public .public-header-logo{grid-area:1/1}.portal-public .main-header>.button{grid-area:1/2;min-width:90px}.portal-public .main-header>.searchbox{grid-area:2/1/3/3;width:100%;max-width:none;margin:0;height:40px}}

.auth-box .checkbox-field{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start}.auth-box .checkbox-field label{margin:0;line-height:1.65}.auth-box .checkbox-field input{margin-top:4px}.auth-box .checkbox-field a{text-decoration:underline;text-underline-offset:3px}.auth-box .checkbox-field .errorlist{grid-column:2}

/* Institutional pages: readable lines. Quem somos: brand opening, what Locarti offers and the editable text. */
.content-entries>.content-entry{max-width:760px;font-size:15px;line-height:1.7}
.content-entry>div a,.about-story a{text-decoration:underline;text-underline-offset:3px}
/* Text and photo share a row while the text keeps half of it; below that, the photo wraps under the text. */
.about-hero{display:flex;flex-wrap:wrap;align-items:center;gap:32px 48px;padding:56px 64px;margin-bottom:24px;border-radius:24px;overflow:hidden;color:#fff;background:radial-gradient(90% 120% at 100% 100%,#ef5d3333,transparent 60%),radial-gradient(70% 90% at 0 0,var(--brand-primary-hover),transparent 70%),var(--brand-primary)}
.about-hero-copy{flex:999 1 0;min-width:52%}
.about-eyebrow{margin:0 0 16px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#ffb39a}
.about-hero h1{margin:0;max-width:15em;font-size:clamp(30px,3.3vw,46px);line-height:1.12;letter-spacing:-.02em;color:#fff;text-wrap:balance}
.about-lead{margin:20px 0 0;max-width:40em;font-size:18px;line-height:1.65;color:#dedcf2}
.about-lead a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.about-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.about-actions .button{min-height:48px;padding:12px 24px;font-size:14px}
.button.about-cta{background:var(--brand-accent);border-color:var(--brand-accent);color:var(--brand-accent-foreground)}
.button.about-cta:hover{background:#f37350;border-color:#f37350;color:var(--brand-accent-foreground)}
.button.about-ghost{background:transparent;border-color:#ffffff73;color:#fff}
.button.about-ghost:hover{background:#ffffff14;border-color:#fff}
.about-hero-media{flex:1 1 clamp(220px,36%,420px);position:relative;align-self:stretch;min-height:340px;margin:0 24px 24px 0}
.about-hero-media::before{content:"";position:absolute;inset:24px -24px -24px 24px;border-radius:20px;background:var(--brand-accent)}
.about-hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;border-radius:20px;box-shadow:0 24px 48px #0000004d}
.about-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:24px}
.about-pillars article{padding:28px;border:1px solid var(--line);border-radius:16px;background:#fff}
.about-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:20px;border-radius:12px;background:var(--brand-soft);color:var(--brand-primary)}
.about-icon .icon{width:24px;height:24px}
.about-pillars h3{margin:0 0 8px;font-size:17px;line-height:1.35}
.about-pillars p{margin:0;font-size:15px;line-height:1.6;color:var(--muted)}
.about-story{display:flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}
.about-story>div{flex:999 1 0;min-width:55%;align-self:center;padding:48px 56px}
.about-story h2{margin:0 0 16px;font-size:24px}
.about-story h2::before{content:"";display:block;width:36px;height:4px;margin-bottom:16px;border-radius:2px;background:var(--brand-accent)}
.about-story p{max-width:62ch;margin:0 0 14px;font-size:16px;line-height:1.75;color:#3d4a56}
.about-story p:last-child{margin-bottom:0}
/* The product photo has a white background; multiply lets it sit on the brand tint. */
.about-story-media{flex:1 1 clamp(240px,32%,360px);position:relative;min-height:300px;margin:0;background:var(--brand-soft);isolation:isolate}
.about-story-media img{position:absolute;inset:0;width:100%;height:100%;padding:28px;object-fit:contain;mix-blend-mode:multiply;filter:brightness(1.01)}
@media(max-width:1100px){.about-hero{padding:44px}.about-hero-media{min-height:300px}.about-story>div{padding:40px}}
@media(max-width:800px){
  .about-hero{padding:36px 28px 40px}
  .about-hero-media{min-height:260px;margin:0 16px 16px 0}
  .about-hero-media::before{inset:16px -16px -16px 16px}
  .about-pillars{grid-template-columns:1fr;gap:12px}
  .about-pillars article{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:16px;padding:20px}
  .about-icon{grid-row:span 2;margin:0}
  .about-story>div{padding:32px 28px}
  .about-story-media{min-height:260px}
}
@media(max-width:540px){
  .about-hero{padding:28px 20px 32px;border-radius:18px}
  .about-hero h1{font-size:28px}
  .about-lead{font-size:16px}
  .about-actions{flex-direction:column}
  .about-hero-media{min-height:220px}
  .about-story>div{padding:28px 20px}
  .about-story h2{font-size:20px}
  .about-story p{font-size:15px}
  .about-story-media{min-height:240px}
}

/* Pedido por lista: the form with its steps beside it, then the review of what the catalogue found. */
.ai-page-heading{flex-wrap:nowrap;align-items:center;gap:16px}
.ai-page-icon{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:14px;background:var(--brand-accent-soft);color:var(--brand-accent)}
.ai-page-icon .icon{width:26px;height:26px}
.ai-page-heading h1{margin:0}
.ai-page-heading p{margin:2px 0 0;font-size:14px;color:var(--muted)}
.ai-page{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0 24px;align-items:start}
.ai-page .ai-input-panel{margin-bottom:24px;padding:24px}
.ai-page .ai-compose textarea{min-height:220px}
.ai-page-aside{display:grid;gap:16px}
.ai-steps{margin:0;padding:24px}
.ai-steps h2{margin-bottom:20px;font-size:16px}
.ai-steps ol{margin:0;padding:0;list-style:none;counter-reset:ai-step}
.ai-steps li{position:relative;display:grid;gap:2px;padding:0 0 20px 44px;counter-increment:ai-step}
.ai-steps li:last-child{padding-bottom:0}
.ai-steps li::before{content:counter(ai-step);position:absolute;top:0;left:0;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand-primary);color:#fff;font-size:13px;font-weight:700}
.ai-steps li:not(:last-child)::after{content:"";position:absolute;top:34px;bottom:6px;left:13px;width:2px;border-radius:1px;background:var(--brand-line)}
.ai-steps strong{font-size:14px}
.ai-steps span{font-size:13px;line-height:1.55;color:var(--muted)}
.ai-help{display:flex;align-items:center;gap:14px;margin:0;padding:18px 20px;color:var(--ink)}
.ai-help:hover{background:var(--brand-soft);border-color:var(--brand-line);text-decoration:none}
.ai-help-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--brand-soft);color:var(--primary)}
.ai-help>span:nth-child(2){display:grid;font-size:13px;color:var(--muted)}
.ai-help strong{font-size:14px;color:var(--ink)}
.ai-help>.icon{margin-left:auto;color:var(--muted)}
.ai-results{padding:24px}
.ai-results-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 24px}
.ai-results-heading h2{margin:0 0 4px;font-size:18px}
.ai-results-heading p{margin:0;font-size:13px;color:var(--muted)}
.ai-results-count{flex:none;padding:6px 12px;border-radius:999px;background:var(--brand-soft);color:var(--primary);font-size:12px;font-weight:700}
/* Rows and buttons follow the width of the results, which differs between the page and the dialog. */
.ai-results form{container-type:inline-size}
.ai-result-list{display:grid;gap:12px;margin:20px 0}
.ai-results .ai-result{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;grid-template-areas:"query query query query" "image product price quantity";align-items:center;gap:8px 16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.ai-results .ai-result-pending{border-color:#f5d5c8;background:#fffaf7}
.ai-results .ai-result-query{grid-area:query;margin:0;font-size:13px;color:var(--muted)}
.ai-result-query span{margin-right:8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.ai-result-image{grid-area:image;width:64px;height:64px;border-radius:10px;background:#f4f5f7;object-fit:contain}
.ai-result-icon{display:grid;place-items:center;background:#fff;color:var(--brand-accent-ink)}
.ai-results .ai-result-product{grid-area:product;display:flex;align-items:center;gap:12px;min-width:0;font-size:14px;font-weight:600}
.ai-results .ai-result-product input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--brand-primary)}
.ai-results .ai-result-choice{display:grid;gap:6px}
.ai-results .ai-result select{width:100%;max-width:420px;height:40px;padding:0 12px;border:1px solid #c9d1d9;border-radius:8px;background:#fff;color:var(--ink);font-size:14px}
.ai-results .ai-result-missing{margin:0;font-weight:400;color:var(--muted)}
.ai-result-price{grid-area:price;font-size:15px;white-space:nowrap}
.ai-quote-tag{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--brand-accent-soft);color:var(--brand-accent-ink);font-size:12px;font-weight:700}
.ai-results .ai-result-quantity{grid-area:quantity;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.ai-results .ai-result-quantity input{width:76px;height:40px;padding:0 8px;border:1px solid #c9d1d9;border-radius:8px;color:var(--ink);font-size:15px;text-align:center}
.ai-results-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;padding-top:20px;border-top:1px solid var(--line)}
.ai-results-actions .button{min-height:46px;padding:12px 22px;font-size:14px}
@container (max-width:560px){
  .ai-results .ai-result{grid-template-columns:56px minmax(0,1fr);grid-template-areas:"query query" "image product" "image price" "image quantity";align-items:start;padding:14px}
  .ai-result-image{width:56px;height:56px}
  .ai-results-actions .button{width:100%}
}
.ai-dialog [data-ai-results-target]{padding:0 24px}
.ai-dialog .ai-results{margin:0 0 24px;padding:20px 0 0;border:0;border-top:1px solid var(--line);border-radius:0}
@media(max-width:1100px){.ai-page{grid-template-columns:1fr}.ai-page-aside{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}}
@media(max-width:540px){
  .ai-page-heading{align-items:flex-start}
  .ai-page-icon{width:44px;height:44px;border-radius:12px}
  .ai-page .ai-input-panel,.ai-page .ai-results{padding:16px}
  .ai-page .ai-compose textarea{min-height:180px}
  .ai-form-footer .button{width:100%}
  .ai-dialog [data-ai-results-target]{padding:0 16px}
}

/* Meus pedidos and Financeiro: one toolbar row, applied filters, the two empty states and cards on phones. */
.table-heading{flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px 24px}
.table-heading h1{margin:0}
.table-heading p{margin:2px 0 0;font-size:14px;color:var(--muted)}
.table-heading>.button{flex:none}
.table-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 16px 16px;font-size:13px;color:var(--muted)}
.filter-chip{padding:4px 10px;border-radius:999px;background:var(--brand-soft);color:var(--primary);font-weight:600}
.table-active-filters a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.data-panel .data-table th[data-col=value],.data-panel .data-table td.money{padding-right:40px;text-align:right}
.data-panel .data-table td.money{font-weight:600}
.table-items{display:flex;gap:4px;max-width:340px;margin-top:4px}
.table-items span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.table-items span:last-child{flex:none}
.data-panel .row-actions>div{text-align:left}
.empty-inline a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.data-table .empty-state{white-space:normal}
.data-table .empty-state h2{margin-bottom:4px;font-size:18px}
.data-table .empty-state .button{margin-top:12px}
.table-empty{display:grid;justify-items:center;gap:8px;padding:72px 24px;text-align:center}
.table-empty-icon{display:grid;place-items:center;width:64px;height:64px;margin-bottom:8px;border-radius:18px;background:var(--brand-soft);color:var(--primary)}
.table-empty-icon .icon{width:30px;height:30px}
.table-empty h2{margin:0;font-size:20px}
.table-empty p{max-width:46ch;margin:0;color:var(--muted)}
.table-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px}
@media(max-width:800px){
  .table-toolbar .table-search{flex-basis:100%;max-width:none}
  .table-toolbar .toolbar-actions{width:100%;margin-left:0}
}
@media(max-width:640px){
  .table-heading{flex-wrap:wrap}
  .data-panel .data-table,.data-panel .data-table tbody{display:block;white-space:normal}
  .data-panel .data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .toolbar-actions>[data-reload-page]{display:none}
  .data-panel .data-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"code actions" "date date" "status value";align-items:center;gap:6px 12px;padding:16px;border-bottom:1px dashed var(--line)}
  .data-panel .data-table.compact tbody tr{padding:10px 16px}
  .data-panel .data-table.spacious tbody tr{padding:24px 16px}
  .data-panel .data-table td{display:block;width:auto;height:auto;padding:0;border:0;text-align:left}
  .data-panel .data-table td.cell-code{grid-area:code;min-width:0}
  .data-panel .data-table td[data-col=status]{grid-area:status}
  .data-panel .data-table td.cell-actions{grid-area:actions}
  .data-panel .data-table td[data-col=date]{grid-area:date;font-size:13px;color:var(--muted)}
  .data-panel .data-table td[data-label]::before{content:attr(data-label) " "}
  .data-panel .data-table td.money{grid-area:value;padding:0;text-align:right}
  .data-panel .data-table td[colspan]{grid-column:1/-1}
  .table-items{max-width:none}
}

/* Back links: one look on every page, naming where they lead. */
.back-link{display:inline-flex;align-items:center;gap:4px;min-height:36px;margin:0 0 8px -10px;padding:6px 14px 6px 6px;border-radius:999px;color:var(--muted);font-size:14px;font-weight:600}
.back-link .icon{width:20px;height:20px;transform:rotate(180deg);transition:transform var(--motion-fast) var(--ease-out)}
.back-link:hover{background:var(--brand-soft);color:var(--primary);text-decoration:none}
.back-link:hover .icon{transform:rotate(180deg) translateX(2px)}
.back-link+.detail-heading{margin-top:0}
.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-bottom:8px;font-size:14px;color:var(--muted)}
.breadcrumbs .back-link{margin:0 0 0 -10px}
.breadcrumbs a:not(.back-link){color:var(--muted)}
.breadcrumbs a:not(.back-link):hover{color:var(--primary)}
.receipt-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.receipt .receipt-actions .button{margin:0}

/* Meus orçamentos: where each request stands, what was asked and the buyer's message. */
.quote-cards{gap:16px}
.quote-card{display:grid;gap:16px;margin:0;padding:24px}
.quote-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.quote-card-head h2{margin:0;font-size:17px}
.quote-meta{margin:4px 0 0;font-size:13px;color:var(--muted)}
.quote-steps{display:flex;margin:0;padding:0;list-style:none;font-size:12px;color:var(--muted)}
.quote-steps li{position:relative;flex:1;padding:22px 8px 0 0}
.quote-steps li::before{content:"";position:absolute;top:2px;left:0;z-index:1;width:14px;height:14px;border:2px solid #c9d1d9;border-radius:50%;background:#fff}
.quote-steps li:not(:last-child)::after{content:"";position:absolute;top:8px;right:6px;left:20px;height:2px;border-radius:1px;background:#e3e7eb}
.quote-steps li.done::before{border-color:var(--brand-primary);background:var(--brand-primary)}
.quote-steps li.done::after{background:var(--brand-primary)}
.quote-steps li.current{color:var(--ink);font-weight:600}
.quote-steps li.current::before{border-color:var(--brand-accent);background:var(--brand-accent);box-shadow:0 0 0 4px var(--brand-accent-soft)}
.quote-items{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.quote-items li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}
.quote-qty{display:inline-grid;place-items:center;flex:none;min-width:40px;height:28px;padding:0 8px;border-radius:8px;background:var(--brand-soft);color:var(--primary);font-size:13px;font-weight:700}
.quote-message{padding:12px 16px;border-left:3px solid var(--brand-line);border-radius:0 8px 8px 0;background:#f8f9fb}
.quote-message span{display:block;margin-bottom:4px;font-size:12px;font-weight:600;color:var(--muted)}
.quote-message p{margin:0;font-size:14px}
.quote-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding-top:16px;border-top:1px dashed var(--line)}
.quote-card-foot p{margin:0;font-size:13px;color:var(--muted)}
.quote-consent{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.quote-consent .icon{width:16px;height:16px;color:#1f8a4c}
.quote-closed{margin:0;font-size:13px;color:var(--muted)}
@media(max-width:540px){.quote-card{padding:18px}.quote-card-head{flex-wrap:wrap}}

/* Footer: one block in the brand colour that closes the page across its whole width; the content keeps its minimum height.
   On desktop the buyer's menu is the first column and ends where the footer starts. Logo and links stay at the top of the screen
   and the account card at the bottom; a sticky box never leaves its parent, so the links only slide within the track above the card. */
.portal-page>.main{min-height:0}
@media(min-width:1101px){
  .portal-page:not(.portal-public){display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}
  .portal-page:not(.portal-public)>.sidebar{position:relative;inset:auto;margin-top:var(--top)}
  .portal-page:not(.portal-public)>.main{margin-left:0}
  .portal-page:not(.portal-public)>.footer{grid-column:1/-1}
  .sidebar-track{flex:1}
  .sidebar-head{position:sticky;top:var(--top);margin-inline:-16px;padding-inline:16px}
  .menu-collapsed .sidebar-head{margin-inline:-12px;padding-inline:12px}
  .sidebar-user{position:sticky;bottom:0}
}
.footer{display:block;padding:0;border-top:0;background:var(--brand-primary-deep);color:#a9a6cf;font-size:14px}
.footer-inner{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr));gap:32px;max-width:var(--content-width);margin:0 auto;padding:48px 24px 40px}
.footer strong{margin:0 0 14px;color:#fff;font-size:15px;font-weight:600}
.footer a{display:block;width:fit-content;margin:0 0 10px;color:#d4d2ec}
.footer a:hover{color:#fff}
.footer p{margin:0 0 10px}
.footer-brand p{max-width:30ch;margin:16px 0 20px;line-height:1.6}
.footer .footer-logo{display:inline-flex;margin:0;padding:8px 12px;border-radius:10px;background:#fff}
.footer-logo img{display:block;width:120px;height:auto}
.footer .footer-cta{display:inline-flex;align-items:center;gap:8px;min-height:40px;margin:0;padding:8px 16px;border:1px solid #ffffff40;border-radius:999px;color:#fff;font-weight:600}
.footer .footer-cta:hover{background:#ffffff14;text-decoration:none}
.footer-seals p{display:flex;align-items:center;gap:8px;color:#d4d2ec}
.footer-seals .icon{color:#8fd3a8}
/* The right padding keeps the policies clear of the chat button. */
.footer-legal{padding:0;border-top:1px solid #ffffff1f;background:transparent;color:#a9a6cf;font-size:13px;text-align:left}
.footer-legal .footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 24px;padding:12px 96px 12px 24px}
.footer-legal p{margin:0;font-size:13px}
.footer-legal nav{display:flex;flex-wrap:wrap;gap:0 20px}
.footer-legal a{display:inline-flex;align-items:center;min-height:44px;margin:0;padding:0;color:#d4d2ec}
@media(max-width:1100px){
  .footer-inner{grid-template-columns:repeat(4,minmax(0,1fr))}
  .footer-brand{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
  .footer-brand p{margin:0}
}
@media(min-width:801px) and (max-width:1100px){.footer .footer-cta{margin-left:auto}}
@media(max-width:800px){.footer-inner{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* On phones the buyer's bottom navigation floats over the end of the footer, so the space is kept inside it. */
@media(max-width:540px){
  .footer-inner{gap:28px 16px;padding:36px 16px 28px}
  .footer-legal .footer-inner{flex-direction:column;align-items:flex-start;padding:8px 16px 24px}
  body:not(.portal-public) .main{padding-bottom:0}
  body:not(.portal-public) .footer-legal .footer-inner{padding-bottom:104px}
  .portal-public .footer-legal .footer-inner{padding-bottom:88px}
}

/* Order page: head with actions, progress, items with their totals, then payment and delivery beside them. */
.order-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:20px}
.order-head h1{margin:0;overflow-wrap:anywhere}
.order-head p{margin:2px 0 0;font-size:14px;color:var(--muted)}
.order-head-actions{display:flex;flex-wrap:wrap;gap:8px}
.order-head-actions form{margin:0}
.order-head-actions .icon{width:16px;height:16px}
.order-progress{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);align-items:center;gap:16px 32px;margin-bottom:24px;padding:20px 24px}
.order-progress .order-status-entry{font-size:13px}
.order-progress .order-status-entry strong{font-size:16px}
.order-steps{display:flex;margin:0;padding:0;list-style:none;font-size:12px;color:var(--muted)}
.order-steps li{position:relative;flex:1;display:grid;align-content:start;gap:2px;padding:22px 8px 0 0}
.order-steps li::before{content:"";position:absolute;top:2px;left:0;z-index:1;width:14px;height:14px;border:2px solid #c9d1d9;border-radius:50%;background:#fff}
.order-steps li:not(:last-child)::after{content:"";position:absolute;top:8px;right:6px;left:20px;height:2px;border-radius:1px;background:#e3e7eb}
.order-steps li.done::before{border-color:var(--brand-primary);background:var(--brand-primary)}
.order-steps li.done::after{background:var(--brand-primary)}
.order-steps li.current{color:var(--ink);font-weight:600}
.order-steps li.current::before{border-color:var(--brand-accent);background:var(--brand-accent);box-shadow:0 0 0 4px var(--brand-accent-soft)}
.order-steps small{font-size:11px;font-weight:400;color:var(--muted)}
.order-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(280px,1fr);gap:24px;align-items:start}
.order-main,.order-side{display:grid;gap:24px;min-width:0}
.order-main>.panel,.order-side>.panel{margin:0;padding:24px}
.order-main h2,.order-side h2{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:16px}
.order-count{padding:2px 8px;border-radius:999px;background:var(--brand-soft);color:var(--primary);font-size:12px;font-weight:700}
.order-lines{margin:0;padding:0;list-style:none}
.order-lines li{display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;grid-template-areas:"img name qty total";align-items:center;gap:4px 16px;padding:12px 0;border-bottom:1px dashed var(--line)}
.order-lines li:first-child{padding-top:0}
.order-lines img{grid-area:img;width:56px;height:56px;border-radius:10px;background:#f4f5f7;object-fit:contain}
.order-lines li>div{grid-area:name;min-width:0}
.order-lines strong{display:block;font-size:14px}
.order-lines small{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.order-line-qty{grid-area:qty;font-size:13px;color:var(--muted);white-space:nowrap}
.order-lines .order-line-total{grid-area:total;white-space:nowrap;text-align:right}
.order-totals{display:grid;gap:8px;max-width:340px;margin:16px 0 0 auto;font-size:14px}
.order-totals>div{display:flex;justify-content:space-between;gap:16px}
.order-totals dt{color:var(--muted)}
.order-totals dd{margin:0}
.order-totals .total{padding-top:10px;border-top:1px solid var(--line);font-size:16px;font-weight:700}
.order-totals .total dt{color:var(--ink)}
.order-documents{display:grid;gap:8px;margin:0 0 16px;padding:0;list-style:none}
.order-documents a{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.order-documents .icon{width:16px;height:16px}
.order-files>p{margin:0 0 16px;font-size:14px}
.order-upload{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;align-items:end;gap:12px;padding-top:16px;border-top:1px dashed var(--line)}
.order-upload .field{margin:0}
.order-upload input[type=file]{width:100%;font-size:13px}
.order-upload input[type=file]::file-selector-button{margin-right:10px;padding:6px 12px;border:1px solid var(--brand-line);border-radius:999px;background:#fff;color:var(--primary);font:inherit;font-weight:600;cursor:pointer}
.order-payment>p{margin:0 0 8px;font-size:14px}
.order-payment form{margin:0 0 16px}
.order-side .payment-options{display:grid;gap:8px;margin:8px 0 12px}
.order-side .payment-options label{display:flex;align-items:center;gap:10px;padding:10px 12px}
.order-payment [data-generate-payment]{width:100%;min-height:42px}
.order-side .payment-record{margin:0 0 16px;padding:0 0 16px;border-top:0;border-bottom:1px dashed var(--line)}
.order-side .payment-record>p{margin:4px 0 0;font-size:14px}
.order-side .payment-record textarea{width:100%}
.order-side h3{margin:4px 0 8px;font-size:13px;color:var(--muted)}
.order-titles{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.order-titles li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;font-size:13px}
.order-titles small{display:block;color:var(--muted)}
.order-titles textarea{width:100%;font-size:12px}
.order-address{display:grid;gap:2px;font-style:normal;font-size:14px}
.order-shipping{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);font-size:14px}
.order-shipping .icon{flex:none;color:var(--primary)}
.order-shipping small{display:block;color:var(--muted)}
.order-tracking{margin:12px 0 0;font-size:14px}
.order-cancel{margin:0;text-align:center}
/* In one column, what the buyer needs first comes first: items, payment, delivery, then notes and files. */
@media(max-width:1100px){
  .order-progress{grid-template-columns:1fr}
  .order-layout{display:flex;flex-direction:column;align-items:stretch}
  .order-main,.order-side{display:contents}
  .order-items{order:1}.order-payment{order:2}.order-delivery{order:3}.order-notes{order:4}.order-files{order:5}.order-side>.button,.order-cancel{order:6}
}
@media(max-width:540px){
  .order-head-actions .button{flex:1 1 auto}
  .order-progress,.order-main>.panel,.order-side>.panel{padding:18px}
  .order-steps{flex-direction:column;gap:12px}
  .order-steps li{display:flex;align-items:baseline;gap:8px;padding:0 0 0 26px}
  .order-steps li:not(:last-child)::after{top:18px;right:auto;bottom:-14px;left:6px;width:2px;height:auto}
  .order-lines li{grid-template-columns:48px minmax(0,1fr) auto;grid-template-areas:"img name name" "img qty total"}
  .order-lines img{width:48px;height:48px}
  .order-upload{grid-template-columns:1fr}
}
