/* Shell responsivo consolidado — estrutura, navegação e breakpoints */
:root{--establishment-sidebar:232px;--establishment-page-max:1360px;--establishment-radius:14px}
html,body{overflow-x:clip}
.app{grid-template-columns:var(--establishment-sidebar) minmax(0,1fr)}
.sidebar{position:sticky;top:0;align-self:start;width:var(--establishment-sidebar);height:100dvh;padding:16px 12px;box-shadow:none}
.sidebar-brand-row{display:flex;align-items:flex-start;gap:6px}
.brand{flex:1;min-width:0;min-height:auto;padding:4px 8px 18px;border-bottom:1px solid rgba(223,231,227,.12)}
.brand .logo{width:38px;height:38px;border-radius:12px}.brand strong{font-size:13px}.brand small{font-size:9px}
.sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;align-content:start;scrollbar-gutter:stable;gap:3px;padding-top:14px}.sidebar nav:before{content:"NAVEGAÇÃO";padding:0 12px 6px;color:#789087;font-size:8px;font-weight:800;letter-spacing:.14em}
.sidebar nav a{display:flex;align-items:center;min-width:0;min-height:44px;gap:10px;padding:9px 12px;border-radius:10px;font-size:12px;line-height:1.25}
.sidebar footer{padding:16px 8px 2px}.sidebar-close{display:none}
.main{grid-column:2;min-width:0}.topbar{min-height:72px;padding:13px clamp(20px,3vw,40px);gap:14px}.topbar h1{font-size:24px}.topbar .eyebrow{margin-bottom:3px}.topbar small{margin-top:3px}
.menu svg,.refresh svg,.sidebar-close svg,.mobile-navigation svg,.modal-shell header button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.content{width:100%;max-width:calc(var(--establishment-page-max) + 80px);padding:24px clamp(20px,3vw,40px) 48px}.notice{top:82px}
.sidebar-scrim,.mobile-navigation{display:none}.sidebar nav a:focus-visible,.mobile-navigation a:focus-visible,.mobile-navigation button:focus-visible,.menu:focus-visible,.refresh:focus-visible,.sidebar-close:focus-visible,.modal-shell header button:focus-visible{outline:3px solid rgba(217,242,122,.82);outline-offset:2px}.modal-shell header button{display:inline-grid;place-items:center;width:44px;min-width:44px;height:44px;padding:0;border-radius:10px;cursor:pointer}
@media(min-width:1440px){.content{margin:0 auto;padding-inline:40px}}
@media(max-width:1023px){.app{grid-template-columns:1fr}.main{grid-column:1}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;width:min(300px,86vw);height:100dvh;transform:translateX(-105%);transition:transform .18s ease;box-shadow:18px 0 48px rgba(5,24,19,.25)}.sidebar.open{transform:translateX(0)}.sidebar-close{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:10px;background:transparent;color:#d9efe7}.sidebar-scrim{position:fixed;z-index:35;inset:0;border:0;background:rgba(5,24,19,.52)}.sidebar-scrim:not([hidden]){display:block}.menu{display:inline-grid;place-items:center}}
@media(max-width:767px){body.mobile-drawer-open{overflow:hidden}.topbar{position:sticky;min-height:60px;padding:8px 14px;gap:8px}.topbar .eyebrow,.topbar small{display:none}.topbar h1{font-size:18px}.refresh,.menu{width:44px;height:44px}.content{padding:16px 14px calc(88px + env(safe-area-inset-bottom));overflow-x:clip}.notice{position:static;margin:12px 14px 0;box-shadow:none}.sidebar nav [data-mobile-primary]{display:none}.sidebar footer{padding-bottom:8px}.mobile-navigation{position:fixed;z-index:30;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:68px;padding:5px 7px calc(5px + env(safe-area-inset-bottom));border-top:1px solid var(--ui-line);background:rgba(255,255,255,.97);backdrop-filter:blur(12px)}.mobile-navigation a,.mobile-navigation button{display:grid;place-items:center;gap:2px;min-height:48px;padding:3px;border:0;background:transparent;color:var(--ui-muted);font:inherit;font-size:10px;line-height:1.1;text-align:center;text-decoration:none}.mobile-navigation a.active,.mobile-navigation button.active{color:var(--ui-brand-strong);font-weight:800}.mobile-navigation svg{width:19px;height:19px}}
@media(max-width:380px){.content{padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}

/* O scrim já separa o drawer do conteúdo; a sombra criava uma faixa escura no celular. */
@media(max-width:1023px){.sidebar{box-shadow:none}}

/* fim da fundação responsiva */
