.hero{position:relative;min-height:calc(100svh - 104px);display:flex;align-items:center;background:var(--vr-navy);overflow:hidden}.hero>img,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{background:linear-gradient(90deg,color-mix(in srgb,var(--vr-navy) 90%,transparent),color-mix(in srgb,var(--vr-navy) 35%,transparent))}.hero-copy{position:relative;z-index:1;width:min(1440px,100%);padding:5rem clamp(1.2rem,6vw,7rem);color:var(--vr-white)}.hero-copy p{max-width:37rem}.hero-copy .eyebrow{color:var(--vr-sand)}.proof{position:absolute;z-index:2;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:8vw;border-top:1px solid color-mix(in srgb,var(--vr-white) 20%,transparent);padding:1rem;color:var(--vr-white);font-size:.7rem;text-transform:uppercase}.section,.content-section,.page-heading{max-width:1440px;margin:auto;padding:clamp(3.5rem,8vw,7rem) clamp(1rem,4vw,4rem)}.page-heading{padding-top:4.5rem;padding-bottom:3rem}.page-heading>p{max-width:48rem;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,7vw,7rem)}.split>img{aspect-ratio:8/5;width:100%;object-fit:cover}.dark{max-width:none;background:var(--vr-navy);color:var(--vr-white)}.dark .intro{max-width:52rem}.dark .intro>p{max-width:40rem}.dark .eyebrow{color:var(--vr-sand)}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;max-width:1440px;margin:auto;padding:0 clamp(1rem,4vw,4rem) 6rem;background:var(--line)}.card{min-height:250px;background:var(--vr-white);padding:1.7rem;border-radius:8px}.card h2{font-size:1.8rem;margin-top:2rem}.card p{color:var(--muted)}.text-link{font-size:.78rem;font-weight:800}.panel{max-width:1400px;margin:1.5rem auto;border:1px solid var(--line);background:var(--vr-white);padding:1.5rem;box-shadow:var(--shadow);border-radius:8px}.panel-head{display:flex;justify-content:space-between;align-items:center}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.78rem}th,td{border-bottom:1px solid var(--line);padding:1rem;text-align:left;white-space:nowrap}th{background:var(--surface);text-transform:uppercase;font-size:.66rem}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:1rem;padding-top:1rem}.pagination button{width:44px;height:44px;background:var(--vr-white);border:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.wide{grid-column:1/-1}.form-panel form{display:grid;gap:1.2rem}.faq details{border-bottom:1px solid var(--line);padding:1.2rem 0}.faq summary{font-weight:800;cursor:pointer}.options{display:flex;gap:.5rem;margin-top:.5rem}.options button{min-height:44px;border:1px solid var(--line);background:var(--vr-white);padding:.6rem 1rem}.options .selected{border-color:var(--vr-navy);box-shadow:inset 0 0 0 1px var(--vr-navy)}.qty{width:90px}.nav-hex{width:.7rem;height:.7rem;border:1px solid currentColor;clip-path:polygon(25% 7%,75% 7%,100% 50%,75% 93%,25% 93%,0 50%)}.chat-launch{position:fixed;right:1rem;bottom:1rem;z-index:76;width:58px;height:58px;border:0;border-radius:50%;background:var(--vr-blue);color:var(--vr-white);font-size:.72rem}.chat-panel{position:fixed;right:1rem;bottom:5.5rem;z-index:75;width:min(360px,calc(100vw - 2rem));background:var(--vr-white);border:1px solid var(--line);box-shadow:var(--shadow);padding:1rem;border-radius:8px}.chat-panel header{display:flex;justify-content:space-between}.chat-close,.modal-close{border:0;background:transparent;font-size:1.5rem}dialog{max-width:700px;width:calc(100% - 2rem);border:1px solid var(--line);padding:2rem;border-radius:8px}dialog::backdrop{background:color-mix(in srgb,var(--vr-navy) 65%,transparent)}.toast{position:fixed;left:50%;bottom:2rem;z-index:80;transform:translateX(-50%);background:var(--vr-navy);color:var(--vr-white);padding:.8rem 1rem;box-shadow:var(--shadow)}
.cookie-banner{position:fixed;z-index:70;left:50%;right:auto;bottom:max(1rem,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(960px,calc(100vw - 1.5rem));display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.85rem 1.25rem;padding:1rem 1.25rem;background:var(--vr-white);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 48px -12px color-mix(in srgb,var(--vr-navy) 28%,transparent);max-height:min(70vh,420px);overflow:auto}
.cookie-banner__content{flex:1 1 220px;min-width:0;max-width:none}
.cookie-banner__content h2{font-size:.95rem;font-weight:800;margin:0 0 .25rem;line-height:1.3}
.cookie-banner__content>p{margin:0;font-size:.82rem;color:var(--muted);max-width:36rem;line-height:1.45}
.cookie-banner__details{margin-top:.5rem;font-size:.8rem}
.cookie-banner__form{display:grid;gap:.45rem;margin-top:.5rem}
.cookie-banner__form .check{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem}
.cookie-banner__actions{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;justify-content:flex-end}
.cookie-banner__actions .button{min-height:44px;min-width:7.5rem;padding-inline:.85rem;font-size:.8rem}
.cookie-banner--loading{opacity:.92;pointer-events:none}
body:has(.cookie-banner:not([hidden])) .chat-launch{bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 7.5rem)}
body:has(.cookie-banner:not([hidden])) .chat-panel{bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 7.5rem + 3.75rem)}

@media (min-width:768px){body:has(.cookie-banner:not([hidden])) .chat-launch{bottom:max(1.25rem,env(safe-area-inset-bottom));right:1rem}body:has(.cookie-banner:not([hidden])) .chat-panel{bottom:calc(max(1.25rem,env(safe-area-inset-bottom)) + 3.75rem)}.cookie-banner{padding:1.1rem 1.5rem}}

@media (max-width:576px){.cookie-banner{width:calc(100vw - 1rem);padding:.9rem}.cookie-banner__actions{width:100%;justify-content:stretch}.cookie-banner__actions .button{flex:1 1 calc(50% - .25rem);min-width:0}}

:where(form){display:grid;gap:1rem;max-width:100%;min-width:0}
:where(form.form--inline){display:inline;gap:0}
.form-grid>:where(label,fieldset,div){min-width:0}
.op-section.panel,.form-panel{min-width:0;max-width:100%}
:where(search){display:block;max-width:100%}

/* Formulários universais — Spec 147. Seletores com :where() para não competir com regras de componente. */
:root{--control-h:2.75rem;--control-radius:6px}

:where(input,select,textarea):not([type="hidden"],[type="checkbox"],[type="radio"],[type="range"],[type="color"],[type="file"],[type="submit"],[type="reset"],[type="button"],[type="image"]){box-sizing:border-box;min-height:var(--control-h);min-width:0;max-width:100%;border-radius:var(--control-radius);font-size:1rem;line-height:1.4}

:where(input,select,textarea)::placeholder{color:var(--muted);opacity:1}

:where(textarea){min-height:6rem;resize:vertical;line-height:1.5}

:where(select){padding-block:.5rem}
:where(select[multiple]){min-height:auto;padding-block:.35rem}
:where(select[multiple]) option:checked{background:color-mix(in srgb,var(--vr-sand) 55%,var(--vr-white))}
:where(option:disabled){color:var(--muted)}
:where(optgroup){font-weight:700}

:where(input[type="checkbox"],input[type="radio"]){width:1.1rem;height:1.1rem;min-height:0;margin:0 .45rem 0 0;padding:0;flex:none;vertical-align:middle;accent-color:var(--vr-navy)}
:where(input[type="range"]){width:100%;min-height:var(--control-h);padding:0;accent-color:var(--vr-navy)}
:where(input[type="color"]){width:3rem;min-width:3rem;height:var(--control-h);min-height:var(--control-h);padding:.25rem;cursor:pointer}
:where(input[type="file"]){min-height:var(--control-h);padding:.4rem;font-size:.9rem}
:where(input[type="file"])::file-selector-button{min-height:2.25rem;margin-inline-end:.75rem;padding:.4rem .85rem;border:1px solid var(--vr-navy);border-radius:var(--control-radius);background:var(--vr-white);color:var(--vr-navy);font:inherit;font-weight:700;cursor:pointer}
:where(input[type="file"])::file-selector-button:hover{background:var(--surface)}
:where(input[type="number"]){text-align:start}
:where(input[type="search"])::-webkit-search-cancel-button{cursor:pointer}

:where(input[type="submit"],input[type="reset"],input[type="button"]){min-height:var(--control-h);padding:.6rem 1.1rem;border:1px solid var(--vr-navy);border-radius:var(--control-radius);background:var(--vr-navy);color:var(--vr-white);font:inherit;font-weight:700;cursor:pointer}
:where(input[type="reset"]){background:var(--vr-white);color:var(--vr-navy)}

:where(input,select,textarea):focus-visible{outline:3px solid var(--vr-sand);outline-offset:2px;border-color:var(--vr-navy)}

:where(input,select,textarea):disabled,:where(input[type="submit"],input[type="reset"],input[type="button"]):disabled{opacity:.6;cursor:not-allowed;background:var(--surface)}
:where(input[type="checkbox"],input[type="radio"]):disabled{background:none}
:where(input,textarea):read-only:not(:disabled){background:var(--surface)}

:where(input,select,textarea)[aria-invalid="true"]{border-color:var(--vr-danger);box-shadow:inset 3px 0 0 var(--vr-danger)}
:where(input,select,textarea):user-invalid{border-color:var(--vr-danger);box-shadow:inset 3px 0 0 var(--vr-danger)}
:where(input,select,textarea):user-valid{border-color:var(--vr-success)}
:where(input[type="checkbox"],input[type="radio"])[aria-invalid="true"]{outline:2px solid var(--vr-danger);outline-offset:2px}

:where(label){font-size:.85rem}
:where(label) :where(input[type="checkbox"],input[type="radio"]){margin-top:.15rem}
:where(fieldset){border:1px solid var(--line);border-radius:8px;padding:1rem;margin:0;min-width:0}
:where(legend){padding:0 .4rem;font-weight:700;font-size:.85rem}
:where(output){font-weight:700;font-variant-numeric:tabular-nums}

:where(progress){width:100%;height:.6rem;border-radius:999px;accent-color:var(--vr-navy)}
:where(meter){width:100%;height:.6rem;accent-color:var(--vr-navy)}

/* Tabelas — Spec 147 */
:where(caption){caption-side:top;text-align:left;font-weight:700;padding:.5rem 0}
:where(thead) th{font-weight:700}
:where(tfoot) td{font-weight:700;background:var(--surface)}
:where(tbody) tr:hover{background:color-mix(in srgb,var(--vr-sand) 12%,var(--vr-white))}
:where(tbody) tr[aria-selected="true"],:where(tbody) tr.is-selected{background:color-mix(in srgb,var(--vr-sand) 28%,var(--vr-white))}
:where(th[aria-sort]){cursor:pointer}
:where(td) :where(input,select,textarea){min-height:2.25rem;font-size:.9rem;padding:.35rem .5rem}
:where(td) :where(input[type="checkbox"],input[type="radio"]){margin:0}

:where(input[type="hidden"]){display:none;width:auto;height:auto;padding:0;border:0;margin:0}
:where(input[type="image"]){width:auto;max-width:100%;height:auto;min-height:0;padding:0;border:0;border-radius:4px;cursor:pointer}
:where(input[type="image"]:focus-visible){outline:3px solid var(--vr-sand);outline-offset:2px}

:where(input[type="checkbox"]:indeterminate){accent-color:var(--vr-blue)}

:where(input,select,textarea):autofill,:where(input,select,textarea):-webkit-autofill{
  box-shadow:inset 0 0 0 1000px color-mix(in srgb,var(--vr-sand) 22%,var(--vr-white));
  -webkit-text-fill-color:var(--ink);
}

:where(object){display:block;max-width:100%;border:0}

.field-error{display:block;margin-top:.35rem;font-size:.78rem;font-weight:700;color:var(--vr-danger)}
.form-hint,.field-hint{display:block;margin-top:.25rem;font-size:.78rem;font-weight:500;color:var(--muted);line-height:1.4}
label:has(+ [aria-invalid="true"]),label:has(:user-invalid){color:var(--vr-danger)}

/* Switch acessível (components/forms/toggle.blade.php) */
.toggle{display:inline-flex;align-items:center;gap:.65rem;cursor:pointer;font-size:.85rem;font-weight:600}
.toggle input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.toggle__track{position:relative;flex:none;width:2.75rem;height:1.5rem;border-radius:999px;background:color-mix(in srgb,var(--vr-navy) 18%,var(--vr-white));border:1px solid var(--line);transition:background .15s ease}
.toggle__track::after{content:"";position:absolute;top:2px;left:2px;width:1.15rem;height:1.15rem;border-radius:50%;background:var(--vr-white);box-shadow:0 1px 3px color-mix(in srgb,var(--vr-navy) 25%,transparent);transition:transform .15s ease}
.toggle input:checked+.toggle__track{background:var(--vr-navy);border-color:var(--vr-navy)}
.toggle input:checked+.toggle__track::after{transform:translateX(1.25rem)}
.toggle input:focus-visible+.toggle__track{outline:3px solid var(--vr-sand);outline-offset:2px}
.toggle input:disabled+.toggle__track{opacity:.55;cursor:not-allowed}

.table-wrap{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;contain:inline-size;overscroll-behavior-x:contain}
.op-section>.table-wrap{margin-bottom:1rem}
.data-table{width:max-content;min-width:100%;max-width:none}

@media (forced-colors:active){
  :where(input,select,textarea,button,.button){border:1px solid ButtonText}
  :where(input,select,textarea):focus-visible{outline:2px solid Highlight}
}

@media (max-width:767px){
  .panel{margin:clamp(.5rem,2vw,1rem) auto;padding:clamp(.75rem,3vw,1.25rem);max-width:calc(100vw - 1rem);box-sizing:border-box}
}

@media (max-width:576px){
  .form-actions{flex-direction:column;align-items:stretch}
  .form-actions .button,.form-actions button,.form-actions input[type="submit"],.form-actions input[type="button"],.form-actions input[type="reset"]{width:100%;max-width:100%}
  .op-section .filter-form{flex-direction:column;align-items:stretch}
  .op-section .filter-form .button,.op-section .filter-form button{width:100%}
  .form-grid :where(input,select,textarea,button){max-width:100%}
  :where(input[type="file"]){width:100%;box-sizing:border-box}
}

@media (min-width:321px) and (max-width:576px){
  .form-grid{grid-template-columns:1fr}
  .form-grid .wide{grid-column:auto}
  .form-actions{gap:.5rem}
  .form-actions .button{flex:1 1 auto;min-width:min(100%,10rem)}
}

@media (min-width:577px) and (max-width:767px){
  .form-grid{grid-template-columns:1fr}
  .form-grid .wide{grid-column:auto}
}

@media (min-width:768px) and (max-width:991px){
  .form-grid{grid-template-columns:repeat(2,1fr)}
}

@media (min-width:992px) and (max-width:1199px){
  .form-grid{grid-template-columns:repeat(2,1fr)}
}

@media (min-width:1200px){
  .form-panel form,.auth-form{max-width:36rem}
  .form-grid.wide-cols{grid-template-columns:repeat(3,1fr)}
}

/* PWA offline (marca por host) */
.pwa-offline{min-height:100vh;display:grid;place-items:center;margin:0;padding:1.5rem;background:var(--surface, #f7f5f0)}
.pwa-offline__main{max-width:28rem;text-align:center;display:grid;gap:1rem;justify-items:center}
.pwa-offline__logo{max-width:168px;height:auto;object-fit:contain}
.pwa-offline__main h1{margin:0;font-size:clamp(1.6rem,4vw,2.2rem)}
.pwa-offline__main p{margin:0;color:var(--muted)}
