/* Componentes compartilhados do Gestão REVESTE. */
.gestao-app .gestao-icon-button { position:relative; width:40px; height:40px; display:inline-grid; place-items:center; flex:0 0 40px; padding:0; color:var(--gestao-text-secondary); background:var(--gestao-surface); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-sm); transition:color var(--gestao-motion-fast),background var(--gestao-motion-fast),border-color var(--gestao-motion-fast); }
.gestao-app .gestao-icon-button:hover:not(:disabled) { color:var(--gestao-primary); border-color:var(--gestao-primary); }
.gestao-app .gestao-icon-button:disabled { opacity:.45; }
.gestao-app .gestao-button { min-height:var(--gestao-control-height); display:inline-flex; align-items:center; justify-content:center; gap:var(--gestao-space-2); padding:.65rem 1rem; border:1px solid transparent; border-radius:var(--gestao-radius-sm); font-size:var(--gestao-font-control); font-weight:700; transition:transform var(--gestao-motion-fast),background var(--gestao-motion-fast),box-shadow var(--gestao-motion-fast); }
.gestao-app .gestao-button:hover:not(:disabled) { transform:translateY(-1px); }
.gestao-app .gestao-button:disabled { opacity:.6; }
.gestao-app .gestao-button--primary { color:#fff; background:var(--gestao-primary); box-shadow:0 8px 22px rgba(8,124,255,.19); }
.gestao-app .gestao-button--primary:hover:not(:disabled) { background:var(--gestao-primary-hover); }
.gestao-app .gestao-button--secondary { color:var(--gestao-text-primary); background:var(--gestao-surface-secondary); border-color:var(--gestao-border); }
.gestao-app .gestao-button--quiet { color:var(--gestao-primary); background:var(--gestao-primary-soft); }
.gestao-app .gestao-button--small { min-height:32px; padding:.4rem .7rem; }
.gestao-app .gestao-button--block { width:100%; }
.gestao-app .gestao-module-header { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--gestao-space-6); margin-bottom:var(--gestao-space-6); }
.gestao-app .gestao-module-header__copy { min-width:0; }
.gestao-app .gestao-module-header h1 { margin:0 0 .55rem; font-size:var(--gestao-font-title); line-height:1.05; overflow-wrap:anywhere; }
.gestao-app .gestao-module-header__copy>p:last-child { max-width:48rem; margin:0; color:var(--gestao-text-secondary); }
.gestao-app .gestao-module-header__actions { display:flex; align-items:center; justify-content:flex-end; gap:var(--gestao-space-2); }
.gestao-app .gestao-module-tabs { display:flex; gap:.45rem; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; scrollbar-width:thin; margin:0 0 var(--gestao-space-6); padding:.32rem; background:color-mix(in srgb,var(--gestao-surface) 92%,var(--gestao-background)); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-md); box-shadow:var(--gestao-shadow-sm); }
.gestao-app .gestao-module-tabs a { min-height:40px; display:flex; align-items:center; gap:.45rem; flex:0 0 auto; padding:.58rem .78rem; color:var(--gestao-text-secondary); border-radius:var(--gestao-radius-sm); font-size:.72rem; font-weight:700; scroll-snap-align:center; }
.gestao-app .gestao-module-tabs a:hover { color:var(--gestao-text-primary); background:var(--gestao-surface-secondary); }
.gestao-app .gestao-module-tabs a.is-active { color:var(--gestao-primary); background:var(--gestao-primary-soft); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gestao-primary) 30%,transparent); }
.gestao-app .gestao-panel, .gestao-app .gestao-table-card { overflow:hidden; background:var(--gestao-surface); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-lg); box-shadow:var(--gestao-shadow-sm); }
.gestao-app .gestao-card { padding:var(--gestao-space-4); background:var(--gestao-surface); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-md); box-shadow:var(--gestao-shadow-sm); }
.gestao-app .gestao-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:var(--gestao-space-4); padding:var(--gestao-space-6); border-bottom:1px solid var(--gestao-border); }
.gestao-app .gestao-panel-heading h2 { margin:0; font-size:var(--gestao-font-section); }
.gestao-app .gestao-panel-heading p:last-child { margin:.35rem 0 0; color:var(--gestao-text-secondary); font-size:var(--gestao-font-caption); }
.gestao-app .gestao-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:var(--gestao-space-4); border-bottom:1px solid var(--gestao-border); }
.gestao-app .gestao-toolbar__actions { display:flex; align-items:center; gap:var(--gestao-space-2); }
.gestao-app input:not([type="checkbox"]):not([type="radio"]), .gestao-app select, .gestao-app textarea { width:100%; min-height:var(--gestao-control-height); padding:.7rem .8rem; color:var(--gestao-text-primary); background:var(--gestao-surface-secondary); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-sm); font-size:var(--gestao-font-control); outline:0; transition:border-color var(--gestao-motion-fast),box-shadow var(--gestao-motion-fast),background var(--gestao-motion-fast); }
.gestao-app textarea { min-height:110px; resize:vertical; }
.gestao-app input:hover, .gestao-app select:hover, .gestao-app textarea:hover { border-color:var(--gestao-border-strong); }
.gestao-app input:focus, .gestao-app select:focus, .gestao-app textarea:focus { border-color:var(--gestao-primary); box-shadow:var(--gestao-focus); }
.gestao-app input:disabled, .gestao-app select:disabled, .gestao-app textarea:disabled { cursor:not-allowed; opacity:.6; }
.gestao-app .gestao-search { position:relative; width:min(430px,100%); }
.gestao-app .gestao-search svg { position:absolute; z-index:1; top:50%; left:.85rem; color:var(--gestao-text-muted); transform:translateY(-50%); pointer-events:none; }
.gestao-app .gestao-search input { padding-left:2.6rem; }
.gestao-app .gestao-field { display:grid; gap:var(--gestao-space-2); }
.gestao-app .gestao-field label { color:var(--gestao-text-secondary); font-size:var(--gestao-font-label); font-weight:700; }
.gestao-app .gestao-field small { color:var(--gestao-text-muted); font-size:var(--gestao-font-caption); }
.gestao-app .gestao-field-error { min-height:.78rem; color:var(--gestao-error)!important; }
.gestao-app .gestao-choice { min-height:40px; display:flex; align-items:center; gap:.6rem; color:var(--gestao-text-secondary); font-size:var(--gestao-font-label); cursor:pointer; }
.gestao-app .gestao-choice input { width:18px; height:18px; flex:0 0 18px; accent-color:var(--gestao-primary); }
.gestao-app .gestao-upload { min-height:128px; display:grid; place-content:center; justify-items:center; gap:.5rem; padding:var(--gestao-space-4); color:var(--gestao-text-secondary); background:var(--gestao-surface-secondary); border:1px dashed var(--gestao-border-strong); border-radius:var(--gestao-radius-md); text-align:center; }
.gestao-app .gestao-upload:hover, .gestao-app .gestao-upload:focus-within { color:var(--gestao-primary); border-color:var(--gestao-primary); background:var(--gestao-primary-soft); }
.gestao-app .gestao-form-alert { padding:.75rem; color:var(--gestao-error); background:var(--gestao-error-soft); border:1px solid var(--gestao-error); border-radius:var(--gestao-radius-sm); font-size:var(--gestao-font-caption); }
.gestao-app .gestao-form-alert[hidden] { display:none; }
.gestao-app .gestao-table-scroll { width:100%; min-width:0; overflow-x:auto; }
.gestao-app .gestao-table-scroll table { width:100%; min-width:670px; border-collapse:collapse; font-size:var(--gestao-font-table); }
.gestao-app .gestao-table-scroll th { padding:.75rem 1rem; color:var(--gestao-text-muted); background:var(--gestao-surface-secondary); font-size:.61rem; letter-spacing:.08em; text-align:left; text-transform:uppercase; }
.gestao-app .gestao-table-scroll td { padding:.9rem 1rem; border-top:1px solid var(--gestao-border); white-space:nowrap; }
.gestao-app .gestao-table-scroll tbody tr:hover { background:var(--gestao-primary-soft); }
.gestao-app .gestao-data-cards { display:none; gap:var(--gestao-space-3); padding:var(--gestao-space-4); }
.gestao-app .gestao-data-card { display:grid; gap:.55rem; padding:var(--gestao-space-4); background:var(--gestao-surface-secondary); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-md); }
.gestao-app .gestao-empty-state { min-height:190px; display:grid; place-content:center; justify-items:center; gap:.5rem; padding:2rem; color:var(--gestao-text-secondary); text-align:center; }
.gestao-app .gestao-empty-state__icon { width:48px; height:48px; display:grid; place-items:center; margin-bottom:.2rem; color:var(--gestao-primary); background:var(--gestao-primary-soft); border-radius:var(--gestao-radius-md); }
.gestao-app .gestao-empty-state strong { color:var(--gestao-text-primary); font:700 .84rem Manrope,sans-serif; }
.gestao-app .gestao-empty-state small { max-width:35rem; color:var(--gestao-text-muted); font-size:var(--gestao-font-caption); }
.gestao-app .gestao-pagination { display:flex; align-items:center; justify-content:center; gap:.75rem; padding:.75rem 1rem; border-top:1px solid var(--gestao-border); }
.gestao-app .gestao-pagination span { color:var(--gestao-text-secondary); font-size:var(--gestao-font-caption); }
.gestao-app .gestao-pagination .gestao-icon-button { width:32px; height:32px; flex-basis:32px; }
.gestao-app .gestao-pagination .gestao-icon-button:first-child svg { transform:rotate(180deg); }
.gestao-app .gestao-badge { display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .52rem; border-radius:999px; font-size:.64rem; font-weight:700; }
.gestao-app .gestao-badge--neutral { color:var(--gestao-text-secondary); background:var(--gestao-surface-secondary); }
.gestao-app .gestao-badge--success { color:var(--gestao-success); background:var(--gestao-success-soft); }
.gestao-app .gestao-badge--warning { color:var(--gestao-warning); background:var(--gestao-warning-soft); }
.gestao-app .gestao-badge--error { color:var(--gestao-error); background:var(--gestao-error-soft); }
.gestao-app .gestao-badge--info { color:var(--gestao-info); background:var(--gestao-info-soft); }
.gestao-app .gestao-structural-notice { display:flex; align-items:flex-start; gap:.65rem; margin-bottom:var(--gestao-space-4); padding:.8rem 1rem; color:var(--gestao-info); background:var(--gestao-info-soft); border:1px solid color-mix(in srgb,var(--gestao-info) 30%,transparent); border-radius:var(--gestao-radius-md); font-size:var(--gestao-font-caption); }
.gestao-app .gestao-structural-notice svg { flex:0 0 auto; }
.gestao-app .gestao-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--gestao-space-4); margin-bottom:var(--gestao-space-6); }
.gestao-app .gestao-metric-card { min-height:134px; display:flex; align-items:flex-start; gap:var(--gestao-space-4); padding:var(--gestao-space-6); background:var(--gestao-surface); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-lg); box-shadow:var(--gestao-shadow-sm); }
.gestao-app .gestao-metric-card__icon { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; color:var(--gestao-info); background:var(--gestao-info-soft); border-radius:var(--gestao-radius-md); }
.gestao-app .gestao-metric-card--primary .gestao-metric-card__icon { color:var(--gestao-primary); background:var(--gestao-primary-soft); }
.gestao-app .gestao-metric-card--success .gestao-metric-card__icon { color:var(--gestao-success); background:var(--gestao-success-soft); }
.gestao-app .gestao-metric-card--warning .gestao-metric-card__icon { color:var(--gestao-warning); background:var(--gestao-warning-soft); }
.gestao-app .gestao-metric-card>div { display:grid; }
.gestao-app .gestao-metric-card small { color:var(--gestao-text-secondary); font-size:var(--gestao-font-caption); }
.gestao-app .gestao-metric-card strong { margin:.3rem 0 .15rem; font:800 1.6rem Manrope,sans-serif; }
.gestao-app .gestao-metric-card p { margin:0; color:var(--gestao-text-muted); font-size:.65rem; }
.gestao-app .gestao-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:var(--gestao-space-4); }
.gestao-app .gestao-skeleton-stack { min-height:250px; display:grid; align-content:center; gap:var(--gestao-space-4); padding:var(--gestao-space-6); }
.gestao-app .gestao-skeleton-stack span { height:24px; background:linear-gradient(90deg,var(--gestao-surface-secondary),var(--gestao-surface-elevated),var(--gestao-surface-secondary)); background-size:200% 100%; border-radius:7px; animation:gestao-skeleton 1.8s ease-in-out infinite; }
.gestao-app .gestao-skeleton-stack span:nth-child(2) { width:78%; }.gestao-app .gestao-skeleton-stack span:nth-child(3) { width:58%; }
@keyframes gestao-skeleton { to { background-position:-200% 0; } }
.gestao-app .gestao-timeline { display:grid; gap:0; padding:var(--gestao-space-6); }
.gestao-app .gestao-timeline>div { position:relative; min-height:62px; display:flex; gap:.8rem; }
.gestao-app .gestao-timeline>div::before { content:""; position:absolute; top:12px; bottom:-4px; left:5px; width:1px; background:var(--gestao-border); }
.gestao-app .gestao-timeline>div:last-child::before { display:none; }
.gestao-app .gestao-timeline>div>span { z-index:1; width:11px; height:11px; margin-top:3px; background:var(--gestao-primary); border:3px solid var(--gestao-surface); border-radius:50%; box-shadow:0 0 0 1px var(--gestao-primary); }
.gestao-app .gestao-timeline p { display:grid; align-content:start; gap:.2rem; margin:0; font-size:.72rem; }
.gestao-app .gestao-timeline small { color:var(--gestao-text-muted); }
.gestao-app .gestao-settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gestao-space-4); }
.gestao-app .gestao-theme-grid { display:grid; gap:var(--gestao-space-3); padding:var(--gestao-space-6); }
.gestao-app .gestao-theme-option input { position:absolute; opacity:0; pointer-events:none; }
.gestao-app .gestao-theme-option>span { min-height:80px; display:grid; grid-template-columns:36px 1fr; align-items:center; column-gap:.75rem; padding:var(--gestao-space-4); color:var(--gestao-text-secondary); background:var(--gestao-surface-secondary); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-md); cursor:pointer; }
.gestao-app .gestao-theme-option svg { grid-row:1/3; color:var(--gestao-primary); }
.gestao-app .gestao-theme-option strong { color:var(--gestao-text-primary); font-size:.8rem; }
.gestao-app .gestao-theme-option small { font-size:.66rem; }
.gestao-app .gestao-theme-option input:checked+span { border-color:var(--gestao-primary); background:var(--gestao-primary-soft); box-shadow:var(--gestao-focus); }
.gestao-app .gestao-theme-option input:focus-visible+span { outline:2px solid var(--gestao-primary); outline-offset:2px; }
.gestao-app .gestao-component-preview { display:grid; gap:var(--gestao-space-6); padding:var(--gestao-space-6); }
.gestao-app .gestao-badge-row, .gestao-app .gestao-preview-actions { display:flex; flex-wrap:wrap; gap:var(--gestao-space-2); }
.gestao-app .gestao-switch { display:flex; align-items:center; gap:.65rem; font-size:var(--gestao-font-label); cursor:pointer; }
.gestao-app .gestao-switch input { position:absolute; opacity:0; }
.gestao-app .gestao-switch span { position:relative; width:40px; height:22px; flex:0 0 40px; background:var(--gestao-border); border-radius:999px; transition:background var(--gestao-motion-fast); }
.gestao-app .gestao-switch span::after { content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; background:#fff; border-radius:50%; box-shadow:var(--gestao-shadow-sm); transition:transform var(--gestao-motion-fast); }
.gestao-app .gestao-switch input:checked+span { background:var(--gestao-primary); }
.gestao-app .gestao-switch input:checked+span::after { transform:translateX(18px); }
.gestao-app .gestao-switch input:focus-visible+span { outline:2px solid var(--gestao-primary); outline-offset:2px; }
.gestao-app [data-tooltip] { position:relative; }
.gestao-app [data-tooltip]::after { content:attr(data-tooltip); position:absolute; z-index:90; left:50%; bottom:calc(100% + 8px); max-width:220px; padding:.45rem .6rem; color:#fff; background:#05080c; border-radius:7px; box-shadow:var(--gestao-shadow-md); font-size:.65rem; white-space:nowrap; opacity:0; visibility:hidden; transform:translate(-50%,4px); transition:opacity var(--gestao-motion-fast),transform var(--gestao-motion-fast); pointer-events:none; }
.gestao-app [data-tooltip]:hover::after, .gestao-app [data-tooltip]:focus-visible::after { opacity:1; visibility:visible; transform:translate(-50%,0); }
.gestao-app .gestao-error-page { min-height:60vh; display:grid; place-content:center; justify-items:center; gap:var(--gestao-space-3); text-align:center; }
.gestao-app .gestao-error-page>span { color:var(--gestao-primary); font:800 4rem/1 Manrope,sans-serif; opacity:.28; }
.gestao-app .gestao-error-page h1 { margin:0; font-size:clamp(1.6rem,3vw,2.35rem); }
.gestao-app .gestao-error-page p { max-width:38rem; margin:0 0 .75rem; color:var(--gestao-text-secondary); }
.gestao-app .gestao-toast-region { position:fixed; z-index:1200; right:1rem; bottom:1rem; width:min(370px,calc(100vw - 2rem)); display:grid; gap:.5rem; pointer-events:none; }
.gestao-app .gestao-toast { min-height:54px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.65rem; padding:.75rem; color:var(--gestao-text-primary); background:var(--gestao-surface-elevated); border:1px solid var(--gestao-border); border-left:3px solid var(--gestao-info); border-radius:var(--gestao-radius-sm); box-shadow:var(--gestao-shadow-lg); opacity:0; transform:translateY(8px); transition:opacity .19s,transform .19s; pointer-events:auto; }
.gestao-app .gestao-toast.is-visible { opacity:1; transform:none; }
.gestao-app .gestao-toast--success { border-left-color:var(--gestao-success); }.gestao-app .gestao-toast--error { border-left-color:var(--gestao-error); }.gestao-app .gestao-toast--warning { border-left-color:var(--gestao-warning); }
.gestao-app .gestao-toast p { margin:0; font-size:.74rem; }.gestao-app .gestao-toast button { width:32px; height:32px; display:grid; place-items:center; padding:0; color:var(--gestao-text-muted); background:transparent; border:0; border-radius:7px; }
.gestao-app.gestao-modal-open { overflow:hidden; }
.gestao-app .gestao-modal-overlay { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:1rem; background:var(--gestao-overlay); opacity:0; backdrop-filter:blur(5px); transition:opacity .17s; }
.gestao-app .gestao-modal-overlay[hidden] { display:none; }.gestao-app .gestao-modal-overlay.is-visible { opacity:1; }
.gestao-app .gestao-modal { width:min(560px,100%); max-height:calc(100dvh - 2rem); overflow:auto; background:var(--gestao-surface); border:1px solid var(--gestao-border); border-radius:var(--gestao-radius-lg); box-shadow:var(--gestao-shadow-lg); transform:translateY(10px) scale(.98); transition:transform .17s; }
.gestao-app .gestao-modal-overlay.is-visible .gestao-modal { transform:none; }
.gestao-app .gestao-modal>header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:var(--gestao-space-6); border-bottom:1px solid var(--gestao-border); }
.gestao-app .gestao-modal h2 { margin:0; font-size:var(--gestao-font-section); }.gestao-app .gestao-modal__body { padding:var(--gestao-space-6); }.gestao-app .gestao-modal__body p { margin:0; color:var(--gestao-text-secondary); white-space:pre-line; }
.gestao-app .gestao-modal>footer { display:flex; justify-content:flex-end; gap:.65rem; padding:var(--gestao-space-4) var(--gestao-space-6); background:var(--gestao-surface-secondary); border-top:1px solid var(--gestao-border); }
.gestao-store-bridge-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.gestao-store-bridge-grid .gestao-panel { min-width:0; padding:22px; display:grid; grid-template-columns:auto 1fr; align-items:start; gap:14px; }
.gestao-store-bridge-grid .gestao-panel>span { width:44px; height:44px; display:grid; place-items:center; color:var(--gestao-accent); background:var(--gestao-accent-soft); border-radius:12px; }
.gestao-store-bridge-grid h2 { margin:0 0 6px; font-size:1rem; }
.gestao-store-bridge-grid p { margin:0; color:var(--gestao-text-muted); line-height:1.55; }
.gestao-store-bridge-grid .gestao-button { grid-column:1/-1; justify-content:center; }
@media(max-width:767px){.gestao-store-bridge-grid{grid-template-columns:1fr}.gestao-store-bridge-grid .gestao-panel{padding:18px}}
