/* ══════ documento e barra de navegação ══════ */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
.site-preview-bar{position:sticky;top:0;z-index:10010;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.4rem;background:#0a1a2f;color:#fff;font-size:.85rem;border-bottom:2px solid #c68c33}
.site-preview-bar>div{display:grid;gap:.2rem}.site-preview-bar strong{font-weight:600}.site-preview-bar span{font-size:.75rem;color:#d7e0eb}.site-preview-bar .btn{flex-shrink:0;background:#c68c33;color:#fff;border-color:#c68c33}
.has-site-preview header{top:var(--site-preview-height,0px)}
.has-site-preview #app-institucional nav.main{top:var(--site-preview-height,0px)}
#app-admin a[data-site-preview][aria-disabled="true"]{opacity:.4;cursor:not-allowed}
@media(max-width:600px){.site-preview-bar{align-items:flex-start;flex-wrap:wrap;padding:.7rem 1rem;gap:.65rem}.site-preview-bar .btn{font-size:.75rem}}
body{background:#FBFAF6;font-family:"Plus Jakarta Sans",system-ui,sans-serif;overflow-x:clip}
.appwrap{display:none;padding-bottom:0}
.appwrap.on{display:block}
/* ══ página pública de interdição: manutenção ou em breve ══ */
#portao{position:fixed;inset:0;z-index:800;display:none;overflow-y:auto;
  background:#0A1A2F;color:#F6F1E8;
  font-family:"Plus Jakarta Sans",system-ui,sans-serif}
#portao.on{display:block}
#portao .pt-fundo{position:absolute;inset:0;overflow:hidden;pointer-events:none}
#portao .pt-fundo::before{content:"";position:absolute;width:120vmax;height:120vmax;
  top:-45vmax;right:-40vmax;border-radius:50%;
  background:radial-gradient(circle,rgba(198,140,51,.16),transparent 62%)}
#portao .pt-fundo::after{content:"";position:absolute;width:90vmax;height:90vmax;
  bottom:-38vmax;left:-30vmax;border-radius:50%;
  background:radial-gradient(circle,rgba(198,140,51,.09),transparent 60%)}
#portao .pt-wrap{position:relative;min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:clamp(2.5rem,7vw,5rem) clamp(1.2rem,5vw,2rem) clamp(6rem,12vw,7rem);
  max-width:780px;margin:0 auto}
#portao .pt-mk{width:74px;color:#E0AE5C;margin-bottom:1.8rem}
#portao .pt-selo{font-family:"IBM Plex Mono",monospace;font-size:.64rem;letter-spacing:.26em;
  text-transform:uppercase;color:#E0AE5C;display:flex;align-items:center;gap:.7rem;margin-bottom:1.4rem}
#portao .pt-selo::before,#portao .pt-selo::after{content:"";width:36px;height:1px;background:rgba(224,174,92,.5)}
#portao h1{font-size:clamp(2.1rem,6vw,3.6rem);font-weight:800;letter-spacing:-.04em;
  line-height:1.08;margin:0 0 1.1rem}
#portao h1 em{font-style:italic;color:#E0AE5C;font-weight:700}
#portao .pt-texto{font-size:clamp(1rem,2.2vw,1.16rem);line-height:1.7;color:#B9C3CF;
  max-width:56ch;margin:0 auto}
#portao .pt-previsao{margin-top:2rem;border:1px solid rgba(224,174,92,.35);border-radius:999px;
  padding:.6rem 1.4rem;font-family:"IBM Plex Mono",monospace;font-size:.78rem;letter-spacing:.06em;color:#E7D9BF}
#portao .pt-form{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-top:2.4rem;width:100%}
#portao .pt-form input{flex:1 1 260px;max-width:360px;padding:.85rem 1.1rem;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff;
  font:inherit;font-size:.95rem}
#portao .pt-form input::placeholder{color:#8E9AA8}
#portao .pt-form input:focus{outline:none;border-color:#E0AE5C;background:rgba(255,255,255,.1)}
#portao .pt-form button{padding:.85rem 1.6rem;border-radius:999px;border:0;background:#C68C33;color:#0A1A2F;
  font:inherit;font-weight:700;font-size:.92rem;cursor:pointer;transition:.2s}
#portao .pt-form button:hover{background:#E0AE5C}
#portao .pt-ok{margin-top:1rem;font-size:.88rem;color:#9BD5A8;min-height:1.3rem}
#portao .pt-acoes{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin-top:2.4rem}
#portao .pt-acoes a{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.7rem;border-radius:999px;
  font-weight:700;font-size:.95rem;text-decoration:none;transition:.2s;border:1px solid transparent}
#portao .pt-acoes a.principal{background:#C68C33;color:#0A1A2F}
#portao .pt-acoes a.principal:hover{background:#E0AE5C}
#portao .pt-acoes a.secundario{border-color:rgba(255,255,255,.28);color:#F6F1E8}
#portao .pt-acoes a.secundario:hover{border-color:#E0AE5C;color:#E0AE5C}
#portao .pt-contato{margin-top:2.8rem;display:flex;gap:1.6rem;flex-wrap:wrap;justify-content:center;
  font-size:.9rem;color:#B9C3CF}
#portao .pt-contato a{color:#E0AE5C;text-decoration:none;border-bottom:1px solid rgba(224,174,92,.4)}
#portao .pt-rodape{position:absolute;bottom:clamp(1.4rem,4vw,2.4rem);left:0;right:0;text-align:center;
  font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.18em;
  text-transform:uppercase;color:#5D6B7B}
#portao .pt-escolas{margin-top:2.2rem;font-size:.86rem;color:#8E9AA8}
#portao .pt-escolas a{color:#E0AE5C;text-decoration:none;border-bottom:1px solid rgba(224,174,92,.4)}
#dock{position:fixed;bottom:.9rem;left:50%;transform:translateX(-50%);z-index:900;
  display:flex;align-items:center;gap:.3rem;padding:.35rem;border-radius:999px;
  background:rgba(10,26,47,.94);backdrop-filter:blur(14px);
  box-shadow:0 22px 50px -18px rgba(10,26,47,.65);max-width:calc(100vw - 1.4rem);overflow-x:auto}
#dock::-webkit-scrollbar{display:none}
#dock .mk{width:20px;color:#E0AE5C;flex:none;margin:0 .45rem 0 .5rem}
#dock button{background:transparent;border:0;color:#9FADBC;font-family:inherit;font-size:.8rem;
  font-weight:600;padding:.5rem .95rem;border-radius:999px;cursor:pointer;white-space:nowrap;transition:.2s}
#dock button:hover{color:#fff;background:rgba(255,255,255,.08)}
#dock button.on{color:#0A1A2F;background:#E0AE5C}
#dock .sep{width:1px;height:22px;background:rgba(255,255,255,.16);margin:0 .3rem;flex:none}
#dock .zerar{color:#7C8794;font-size:.72rem}
#dock .zerar:hover{color:#fff}
#modo{font-family:"IBM Plex Mono",monospace;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;
  color:#6C7681;padding-right:.7rem;white-space:nowrap}
@media(max-width:900px){#modo{display:none}}
/* ══════ Site institucional ══════ */
#app-institucional{
  --navy:#0A1A2F; --navy-2:#12294A; --blue:#1B3B66; --blue-soft:#E9EEF5;
  --gold:#C68C33; --gold-dk:#A9752A; --gold-lt:#E0AE5C; --gold-soft:#F7E9D2;
  --cream:#FCF2E7; --paper:#FBFAF6; --white:#fff;
  --line:#E4DCCF; --line-2:#EFE9DE; --slate:#5B6674; --slate-2:#8A94A0;
  --ok:#2F6B4F; --err:#9B2C22;
  --r:16px;
  --sp:clamp(1.1rem,4vw,2.2rem);
  --sh:0 1px 2px rgba(10,26,47,.05), 0 14px 34px -16px rgba(10,26,47,.16);
  --sh-lg:0 30px 70px -26px rgba(10,26,47,.34);
  --ease:cubic-bezier(.2,.75,.25,1);
}
#app-institucional *{box-sizing:border-box}
#app-institucional{margin:0;background:var(--paper);color:var(--navy);
  font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;
  overflow-x:clip}
#app-institucional h1,#app-institucional h2,#app-institucional h3,#app-institucional h4{font-weight:700;line-height:1.1;margin:0 0 .5em;letter-spacing:-.032em}
#app-institucional h1{font-size:clamp(2.3rem,5.6vw,4.4rem);font-weight:800;letter-spacing:-.042em}
#app-institucional h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
#app-institucional h3{font-size:1.06rem;letter-spacing:-.018em}
#app-institucional p{margin:0 0 1em}
#app-institucional a{color:inherit}
#app-institucional svg{max-width:100%}
#app-institucional button{font-family:inherit}
#app-institucional em.ac{font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:400;color:var(--gold);letter-spacing:-.012em}
#app-institucional .wrap{max-width:1220px;margin:0 auto;padding:0 var(--sp)}
#app-institucional .narrow{max-width:840px}
#app-institucional .eyebrow{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-dk);display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.1rem}
#app-institucional .eyebrow::before{content:"";width:26px;height:1px;background:var(--gold)}
#app-institucional .lead{font-size:clamp(1rem,1.5vw,1.12rem);color:var(--slate);max-width:58ch}
#app-institucional .muted{color:var(--slate)}
#app-institucional .small{font-size:.86rem}
#app-institucional .hint{font-size:.8rem;color:var(--slate-2)}
#app-institucional .center{text-align:center}
#app-institucional .center .lead{margin-inline:auto}
#app-institucional .center .eyebrow{justify-content:center}
#app-institucional /* grain + ambient */
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}
#app-institucional /* rail */
.rail{position:fixed;left:14px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:.55rem}
#app-institucional .rail button{width:9px;height:9px;border-radius:50%;border:1px solid var(--slate-2);background:transparent;
  cursor:pointer;padding:0;transition:.25s var(--ease);position:relative}
#app-institucional .rail button.on{background:var(--gold);border-color:var(--gold);transform:scale(1.35)}
#app-institucional .rail button::after{content:attr(data-t);position:absolute;left:18px;top:50%;transform:translateY(-50%) translateX(-6px);
  font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  white-space:nowrap;opacity:0;transition:.25s var(--ease);color:var(--slate);pointer-events:none}
#app-institucional .rail button:hover::after{opacity:1;transform:translateY(-50%)}
@media(max-width:1320px){#app-institucional .rail{display:none}}
#app-institucional /* logo */
.lockup{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--navy)}
#app-institucional .lockup .mk{width:32px;height:36px;color:inherit;flex:none}
#app-institucional .lockup .wd{height:14px;width:auto;color:inherit}
#app-institucional .lockup.light{color:#fff}
.aq-custom-logo>svg{display:none}
.aq-brand-image{display:block;width:auto;max-width:min(210px,40vw);object-fit:contain}
.aq-brand-on-white{background:#fff;border-radius:6px;padding:3px}
#app-portal .brand-art.aq-custom-logo>svg,#app-admin .brand-art.aq-custom-logo>svg{display:none}
#app-portal .brand-art .aq-brand-image,#app-admin .brand-art .aq-brand-image{max-width:100%;max-height:48px}
#app-portal .brand-art,#app-admin .brand-art{display:flex;align-items:center;min-height:48px;width:100%}
#app-portal .brand-context,#app-admin .brand-context{width:100%;min-width:0;overflow-wrap:anywhere}
#app-institucional /* header */
header{position:sticky;top:0;z-index:70;background:rgba(251,250,246,.82);backdrop-filter:blur(16px) saturate(1.2);
  border-bottom:1px solid transparent;transition:.3s var(--ease)}
#app-institucional header.stuck{border-color:var(--line-2);background:rgba(251,250,246,.94)}
#app-institucional .wrap.hbar{display:flex;align-items:center;gap:.9rem;padding:.8rem var(--sp)}
#app-institucional .hbar>*{min-width:0}
#app-institucional .hbar .lockup{flex:0 1 auto}
#app-institucional .hbar .hact{flex:none}
@media(max-width:640px){
  #app-institucional .wrap.hbar{padding-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right));gap:.45rem}
  #app-institucional .hbar .lockup .wd{display:none}
  #app-institucional .hbar .lockup .aq-brand-image{max-width:clamp(38px,18vw,90px)}
  #app-institucional .hbar .burger{margin-left:auto;padding:.45rem .6rem}
  #app-institucional .hbar .hact .btn{padding:.48rem .7rem;font-size:.72rem;white-space:nowrap}
}
#app-institucional nav.main{display:flex;gap:.1rem;margin-left:auto;flex-wrap:wrap}
#app-institucional nav.main .fecha-top{display:none}
#app-institucional nav.main a{font-size:.86rem;font-weight:500;text-decoration:none;color:var(--slate);padding:.42rem .68rem;
  border-radius:999px;position:relative;transition:.2s var(--ease)}
#app-institucional nav.main a:hover{color:var(--navy)}
#app-institucional nav.main a.on{color:var(--navy);font-weight:600;background:var(--cream)}
/* grupos por público: dois menus no lugar de sete links soltos */
#app-institucional .grupo{position:relative}
#app-institucional .grupo .topo{display:inline-flex;align-items:center;gap:.4rem;border:0;background:transparent;
  font:inherit;font-size:.86rem;font-weight:500;color:var(--slate);padding:.42rem .68rem;border-radius:999px;
  cursor:pointer;transition:.2s var(--ease)}
#app-institucional .grupo .topo i{width:7px;height:7px;border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-1px,-1px);transition:.24s var(--ease)}
#app-institucional .grupo .topo:hover{color:var(--navy)}
#app-institucional .grupo.on .topo,#app-institucional .grupo.aberto .topo{color:var(--navy);font-weight:600;background:var(--cream)}
#app-institucional .grupo.aberto .topo i{transform:rotate(-135deg) translate(-2px,-2px)}
#app-institucional .grupo .sub{position:absolute;top:calc(100% + .5rem);left:0;min-width:290px;
  background:var(--white);border:1px solid var(--line);border-radius:14px;padding:.5rem;
  box-shadow:0 30px 60px -28px rgba(10,26,47,.55);display:flex;flex-direction:column;gap:.1rem;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:.24s var(--ease);z-index:95}
#app-institucional .grupo.aberto .sub{opacity:1;visibility:visible;transform:none}
#app-institucional .grupo .sub a{display:block;padding:.6rem .7rem;border-radius:10px;font-size:.88rem;
  font-weight:600;color:var(--navy)}
#app-institucional .grupo .sub a span{display:block;font-size:.76rem;font-weight:400;color:var(--slate);margin-top:.1rem}
#app-institucional .grupo .sub a:hover{background:var(--cream)}
#app-institucional .grupo .sub a.on{background:var(--cream)}
#app-institucional .hact{display:flex;gap:.45rem;align-items:center}
#app-institucional .burger{display:none;border:1px solid var(--line);background:var(--white);border-radius:999px;
  padding:.5rem .9rem;font-size:.8rem;cursor:pointer;font-weight:600;align-items:center;gap:.5rem}
#app-institucional .burger i{display:block;width:16px;height:10px;border-top:1.5px solid var(--navy);border-bottom:1.5px solid var(--navy);position:relative}
#app-institucional .burger i::after{content:"";position:absolute;top:3.5px;left:0;right:0;height:1.5px;background:var(--navy)}
#app-institucional #veu{position:fixed;inset:0;background:rgba(10,26,47,.45);backdrop-filter:blur(3px);z-index:88;
  opacity:0;pointer-events:none;transition:.35s var(--ease)}
#app-institucional #veu.on{opacity:1;pointer-events:auto}
@media(max-width:1140px){#app-institucional .burger{display:inline-flex;margin-left:auto}
#app-institucional.menu-open{overflow:visible}
#app-institucional .hact .btn.gh{display:none}
#app-institucional nav.main{position:fixed;top:0;left:0;bottom:auto;width:min(340px,86vw);
    height:100vh;height:100dvh;max-height:100dvh;box-sizing:border-box;background:var(--white);
    z-index:90;flex-direction:column;flex-wrap:nowrap;gap:0;padding:3.8rem 1.6rem 2rem;
    box-shadow:30px 0 80px -30px rgba(10,26,47,.5);
    padding-bottom:calc(2rem + env(safe-area-inset-bottom));
    transform:translateX(-102%);transition:transform .45s var(--ease);display:flex;overflow-y:auto;
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
#app-institucional nav.main>*{flex-shrink:0}
#app-institucional nav.main .fecha-top{display:block;position:sticky;top:-3.8rem;align-self:flex-end;
    z-index:2;border:1px solid var(--line);background:var(--white);color:var(--navy);
    border-radius:999px;width:36px;height:36px;font-size:1.1rem;line-height:1;cursor:pointer}
#app-institucional nav.main.open{transform:none}
#app-institucional nav.main::before{content:"Navegação";position:absolute;top:2rem;left:1.6rem;
    font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dk)}
#app-institucional nav.main a{font-size:1.12rem;font-weight:600;padding:.85rem 0;border-radius:0;
    border-bottom:1px solid var(--line-2);opacity:0;transform:translateX(-14px);
    transition:opacity .4s var(--ease),transform .4s var(--ease),color .2s}
#app-institucional nav.main.open a{opacity:1;transform:none}
#app-institucional nav.main.open a:nth-child(1){transition-delay:.06s}
#app-institucional nav.main.open a:nth-child(2){transition-delay:.10s}
#app-institucional nav.main.open a:nth-child(3){transition-delay:.14s}
#app-institucional nav.main.open a:nth-child(4){transition-delay:.18s}
#app-institucional nav.main.open a:nth-child(5){transition-delay:.22s}
#app-institucional nav.main.open a:nth-child(6){transition-delay:.26s}
#app-institucional nav.main.open a:nth-child(7){transition-delay:.30s}
#app-institucional nav.main.open a:nth-child(8){transition-delay:.34s}
#app-institucional nav.main a.on{background:transparent;color:var(--gold-dk)}
#app-institucional .grupo{position:static;display:block}
#app-institucional .grupo .topo{display:block;width:100%;text-align:left;padding:1.4rem 0 .4rem;
  font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-dk);font-weight:500;background:transparent;cursor:default;pointer-events:none}
#app-institucional .grupo .topo i{display:none}
#app-institucional .grupo .sub{position:static;opacity:1;visibility:visible;transform:none;
  border:0;box-shadow:none;padding:0;background:transparent;min-width:0;width:auto;display:block}
#app-institucional .grupo{flex:none;width:100%}
#app-institucional .grupo .sub a{font-size:1.06rem;padding:.8rem 0;border-radius:0;
  border-bottom:1px solid var(--line-2);opacity:1;transform:none}
#app-institucional .grupo .sub a span{font-size:.8rem}
#app-institucional nav.main .fecha{display:block}
#app-institucional nav.main a.btn.fecha{color:#fff;border-bottom:0;margin-top:1.6rem;text-align:center;justify-content:center}}
@media(min-width:1141px){#app-institucional nav.main .fecha{display:none}}
#app-institucional /* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.9rem;font-weight:600;
  padding:.8rem 1.5rem;border-radius:999px;border:1px solid transparent;background:var(--gold);color:#fff;
  text-decoration:none;cursor:pointer;transition:.22s var(--ease);white-space:nowrap;position:relative;overflow:hidden}
#app-institucional .btn::after{content:"";position:absolute;inset:0;background:radial-gradient(120px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.25),transparent 60%);opacity:0;transition:.3s}
#app-institucional .btn:hover::after{opacity:1}
#app-institucional .btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(198,140,51,.75)}
#app-institucional .btn.gh{background:transparent;color:var(--navy);border-color:var(--line)}
#app-institucional .btn.gh:hover{background:var(--white);border-color:var(--slate-2);box-shadow:var(--sh)}
#app-institucional .btn.nv{background:var(--navy)}
#app-institucional .btn.nv:hover{box-shadow:0 12px 26px -12px rgba(10,26,47,.6)}
#app-institucional .btn.on-nv{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
#app-institucional .btn.on-nv:hover{background:rgba(255,255,255,.1)}
#app-institucional .btn.sm{padding:.5rem 1.05rem;font-size:.82rem}
#app-institucional :focus-visible{outline:2px solid var(--gold);outline-offset:3px}
#app-institucional .chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--white);border:1px solid var(--line);
  border-radius:999px;padding:.4rem .9rem;font-size:.8rem;font-weight:500;color:var(--blue);cursor:pointer;transition:.2s var(--ease)}
#app-institucional .chip:hover{border-color:var(--gold);color:var(--gold-dk)}
#app-institucional .chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
#app-institucional #timeline{cursor:grab;touch-action:pan-y;user-select:none;scroll-behavior:smooth}
#app-institucional #timeline.dragging{cursor:grabbing;scroll-behavior:auto}
#app-institucional .code{font-family:"IBM Plex Mono",monospace;letter-spacing:.14em;background:var(--gold-soft);
  border:1px dashed var(--gold);color:var(--gold-dk);padding:.14rem .5rem;border-radius:6px;font-size:.8rem;white-space:nowrap}
#app-institucional /* layout */
section{padding:clamp(3rem,7vw,6rem) 0;position:relative;z-index:2}
#app-institucional section.cream{background:var(--cream)}
#app-institucional section.nv{background:var(--navy);color:#DCE3EB}
#app-institucional section.nv h1,#app-institucional section.nv h2,#app-institucional section.nv h3{color:#fff}
#app-institucional section.nv .lead,#app-institucional section.nv .muted{color:#9FADBC}
#app-institucional section.nv .eyebrow{color:var(--gold-lt)}
#app-institucional section.nv .eyebrow::before{background:var(--gold-lt)}
#app-institucional .page{display:none}
#app-institucional .page.on{display:block;animation:ins-pin .5s var(--ease)}
@keyframes ins-pin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
#app-institucional .orn{display:flex;align-items:center;gap:1rem;justify-content:center;padding:0 0 2.5rem}
#app-institucional .orn::before,#app-institucional .orn::after{content:"";height:1px;flex:1;max-width:180px;background:linear-gradient(90deg,transparent,var(--line))}
#app-institucional .orn::after{background:linear-gradient(270deg,transparent,var(--line))}
#app-institucional .orn i{width:7px;height:7px;background:var(--gold);transform:rotate(45deg);display:block}
#app-institucional .split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
@media(max-width:960px){#app-institucional .split{grid-template-columns:1fr}}
#app-institucional .grid{display:grid;gap:1rem}
#app-institucional .g2{grid-template-columns:repeat(2,1fr)}
#app-institucional .g3{grid-template-columns:repeat(3,1fr)}
#app-institucional .g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:960px){#app-institucional .g3,#app-institucional .g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){#app-institucional .g2,#app-institucional .g3,#app-institucional .g4{grid-template-columns:1fr}}
#app-institucional .card{background:var(--white);border:1px solid var(--line-2);border-radius:var(--r);padding:1.5rem;box-shadow:var(--sh);transition:.25s var(--ease)}
#app-institucional a.card{text-decoration:none;display:block}
#app-institucional a.card:hover,#app-institucional .card.hov:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--sh-lg)}
#app-institucional .card p{font-size:.9rem;color:var(--slate);margin:0}
#app-institucional .card h3{margin-bottom:.4rem}
#app-institucional section.nv .card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.11);box-shadow:none}
#app-institucional section.nv .card p{color:#9FADBC}
#app-institucional .num{font-family:"IBM Plex Mono",monospace;font-size:.7rem;color:var(--gold-dk);letter-spacing:.12em}
#app-institucional /* reveal */
@media(prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(18px);transition:.75s var(--ease)}
  .rv.in{opacity:1;transform:none}
  .rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}
}
#app-institucional /* ══ HERO ══ */
.hero{min-height:clamp(560px,86vh,860px);display:flex;align-items:center;position:relative}
#app-institucional .hero .bgmk{position:absolute;right:-6%;top:50%;transform:translateY(-50%) translateY(var(--py,0px));
  width:min(52vw,620px);color:var(--navy);opacity:.045;pointer-events:none;z-index:0}
#app-institucional .hero .wrap{position:relative;z-index:2}
#app-institucional .hero h1{max-width:16ch}
#app-institucional .hero .lead{margin-top:1.3rem}
#app-institucional .cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem}
#app-institucional .ticker{display:flex;gap:2.2rem;flex-wrap:wrap;margin-top:2.6rem;padding-top:1.5rem;border-top:1px solid var(--line)}
#app-institucional .ticker div b{display:block;font-size:1.6rem;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
#app-institucional .ticker div span{font-size:.76rem;color:var(--slate)}
#app-institucional /* ══ INSTRUMENTO: fluxo ══ */
.fluxo{background:var(--navy);border-radius:22px;padding:clamp(1.4rem,3vw,2.4rem);color:#fff;position:relative;overflow:hidden;box-shadow:var(--sh-lg)}
#app-institucional .fluxo .track{display:flex;gap:0;position:relative;margin-bottom:5.4rem;overflow-x:auto;padding-bottom:.4rem;scrollbar-width:none}
#app-institucional .fluxo .track::-webkit-scrollbar{display:none}
#app-institucional .fnode{flex:1;min-width:78px;background:none;border:0;cursor:pointer;padding:.5rem .2rem 0;text-align:center;color:#7E8C9C;position:relative}
#app-institucional .fnode::before{content:"";position:absolute;top:calc(.5rem + 13px);left:0;right:50%;height:1px;background:rgba(255,255,255,.16)}
#app-institucional .fnode::after{content:"";position:absolute;top:calc(.5rem + 13px);left:50%;right:0;height:1px;background:rgba(255,255,255,.16)}
#app-institucional .fnode:first-child::before,#app-institucional .fnode:last-child::after{display:none}
#app-institucional .fnode i{position:relative;z-index:2;display:block;width:26px;height:26px;margin:0 auto .6rem;border-radius:50%;
  border:1px solid rgba(255,255,255,.28);background:var(--navy);font-style:normal;font-family:"IBM Plex Mono",monospace;
  font-size:.7rem;line-height:24px;transition:.35s var(--ease)}
#app-institucional .fnode span{font-size:.68rem;font-family:"IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;display:block}
#app-institucional .fnode.on{color:#fff}
#app-institucional .fnode.on i{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 0 0 5px rgba(198,140,51,.22)}
#app-institucional .fnode.done i{border-color:var(--gold-lt);color:var(--gold-lt)}
#app-institucional .fpane{min-height:150px;position:relative}
#app-institucional .fpane .fp{display:none;animation:ins-pin .45s var(--ease)}
#app-institucional .fpane .fp.on{display:block}
#app-institucional .fpane h3{font-size:1.35rem;color:#fff;margin-bottom:.5rem}
#app-institucional .fpane p{color:#9FADBC;font-size:.94rem;max-width:52ch}
#app-institucional .fpane .who{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:.9rem}
#app-institucional .fbar{height:2px;background:rgba(255,255,255,.12);border-radius:2px;overflow:hidden;margin-top:1.4rem}
#app-institucional .fbar i{display:block;height:100%;width:0;background:var(--gold);transition:width .1s linear}
#app-institucional /* ══ INSTRUMENTO: simulador ══ */
/* ══ INSTRUMENTO: diagnóstico ══ */
.quiz{background:var(--white);border:1px solid var(--line-2);border-radius:20px;padding:clamp(1.4rem,3vw,2.2rem);box-shadow:var(--sh-lg);max-width:720px;margin:0 auto}
#app-institucional .qprog{display:flex;gap:5px;margin-bottom:5.4rem}
#app-institucional .qprog i{flex:1;height:3px;background:var(--line);border-radius:3px;transition:.4s var(--ease)}
#app-institucional .qprog i.on{background:var(--gold)}
#app-institucional .qstep{display:none}
#app-institucional .qstep.on{display:block;animation:ins-pin .4s var(--ease)}
#app-institucional .qopt{width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:.95rem 1.1rem;margin-bottom:.55rem;cursor:pointer;font-size:.92rem;transition:.2s var(--ease);display:flex;gap:.8rem;align-items:center}
#app-institucional .qopt:hover{border-color:var(--gold);background:var(--white);transform:translateX(4px)}
#app-institucional .qopt i{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);flex:none;font-style:normal;
  font-family:"IBM Plex Mono",monospace;font-size:.68rem;display:flex;align-items:center;justify-content:center;color:var(--slate)}
#app-institucional .qopt:hover i{border-color:var(--gold);color:var(--gold-dk)}
#app-institucional .gauge{width:100%;height:8px;background:var(--line);border-radius:8px;overflow:hidden;margin:1.2rem 0}
#app-institucional .gauge i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--blue));transition:1s var(--ease)}
/* ══ MATERIAL DOMICILIAR ══ */
#app-institucional .vitrine{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:clamp(.9rem,2vw,1.4rem);margin-top:2rem}
#app-institucional .prod{border:1px solid var(--line);border-radius:var(--r);background:var(--white);
  overflow:hidden;display:flex;flex-direction:column;transition:.26s var(--ease)}
#app-institucional .prod:hover{border-color:var(--gold);transform:translateY(-4px);
  box-shadow:0 22px 48px -30px rgba(10,26,47,.55)}
#app-institucional .prod .capa{aspect-ratio:3/4;background:linear-gradient(150deg,var(--cream),#EFE7DA);
  display:flex;align-items:center;justify-content:center;position:relative}
#app-institucional .prod .capa svg{width:38%;color:var(--navy);opacity:.26}
#app-institucional .prod .capa img{width:100%;height:100%;object-fit:cover}
#app-institucional .prod .selo{position:absolute;top:.6rem;left:.6rem;font-family:"IBM Plex Mono",monospace;
  font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;padding:.26rem .55rem;border-radius:999px;
  background:var(--white);border:1px solid var(--line);color:var(--slate)}
#app-institucional .prod .selo.enc{background:var(--gold-soft);border-color:var(--gold);color:var(--gold-dk)}
#app-institucional .prod .corpo{padding:.9rem 1rem 1.1rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
#app-institucional .prod .disc{font-family:"IBM Plex Mono",monospace;font-size:.58rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-dk)}
#app-institucional .prod b{font-size:.98rem;line-height:1.3;color:var(--navy)}
#app-institucional .prod .pz{font-family:"IBM Plex Mono",monospace;font-size:1.06rem;font-weight:600;color:var(--navy)}
#app-institucional .prod b a{color:inherit;text-decoration:none}
#app-institucional .prod b a:hover{color:var(--gold-dk)}
#app-institucional .prod .det{font-size:.78rem;color:var(--gold-dk);text-decoration:none;
  border-bottom:1px solid currentColor;align-self:flex-start;margin-top:.15rem}
#app-institucional .prod .acao{margin-top:auto;padding-top:.8rem}
#app-institucional .compraBox{border:1px solid var(--line);border-radius:14px;background:var(--white);
  padding:1.1rem 1.2rem;margin-top:1.6rem;display:flex;flex-direction:column;gap:.7rem}
#app-institucional .compraBox .linha{display:flex;gap:1rem;align-items:baseline;flex-wrap:wrap}
#app-institucional .compraBox .preco{font-family:"IBM Plex Mono",monospace;font-size:1.6rem;font-weight:600}
#app-institucional .compraBox .acoes{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
#app-institucional .prod.esgotado{opacity:.55}
#app-institucional .qtd{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}
#app-institucional .qtd button{border:0;background:var(--white);font:inherit;font-size:1.05rem;line-height:1;
  width:32px;height:32px;cursor:pointer;color:var(--navy)}
#app-institucional .qtd span{min-width:32px;text-align:center;font-family:"IBM Plex Mono",monospace;font-size:.9rem}
#app-institucional .filtrosDom{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:.8rem;margin-top:1.8rem}
#app-institucional .filtrosDom label{display:block;font-family:"IBM Plex Mono",monospace;font-size:.58rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-bottom:.35rem}
#app-institucional .filtrosDom input,#app-institucional .filtrosDom select{width:100%;padding:.6rem .8rem;
  border:1px solid var(--line);border-radius:10px;background:var(--white);font:inherit;font-size:.9rem;color:var(--navy)}
@media(max-width:720px){#app-institucional .filtrosDom{grid-template-columns:1fr}}
#app-institucional .barraCarrinho{position:sticky;bottom:1rem;z-index:60;margin-top:2rem;
  background:var(--navy);color:#fff;border-radius:999px;padding:.7rem .8rem .7rem 1.4rem;
  display:none;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  box-shadow:0 22px 50px -22px rgba(10,26,47,.75)}
#app-institucional .barraCarrinho.on{display:flex}
#app-institucional .barraCarrinho b{font-size:1.02rem}
#app-institucional .barraCarrinho span{color:#A9B4C1;font-size:.84rem}
/* ══ INSTRUMENTO: grade curricular ══ */
#app-institucional .split.grade{margin-top:2.6rem;align-items:start;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr)}
#app-institucional .split.grade>*{min-width:0}
#app-institucional .grade-scroll-hint{display:none}
#app-institucional .matrix{overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--line);border-radius:var(--r);background:var(--white);max-width:100%}
#app-institucional .matrix table{border-collapse:collapse;width:100%;min-width:640px}
#app-institucional .matrix th{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--slate);font-weight:500;padding:.85rem .6rem;text-align:center;border-bottom:1px solid var(--line)}
#app-institucional .matrix th:first-child{text-align:left;padding-left:1.1rem}
#app-institucional .matrix td{padding:.5rem;text-align:center;border-bottom:1px solid var(--line-2)}
#app-institucional .matrix td:first-child{text-align:left;padding-left:1.1rem;font-weight:600;font-size:.88rem;white-space:nowrap}
#app-institucional .dot{width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:var(--paper);cursor:pointer;
  transition:.2s var(--ease);font-family:"IBM Plex Mono",monospace;font-size:.6rem;color:var(--slate-2)}
#app-institucional .dot.has{background:var(--gold-soft);border-color:var(--gold);color:var(--gold-dk)}
#app-institucional .dot.has:hover{transform:scale(1.16);box-shadow:0 6px 16px -6px rgba(198,140,51,.7)}
#app-institucional .dot.sel{background:var(--navy);border-color:var(--navy);color:#fff}
#app-institucional .mdet{background:var(--white);border:1px solid var(--line-2);border-left:3px solid var(--gold);border-radius:var(--r);padding:1.4rem;min-height:150px;overflow-wrap:anywhere}
/* Keep these overrides after the grade's desktop rules. */
@media(max-width:960px){
#app-institucional .split.grade{grid-template-columns:minmax(0,1fr);gap:1.2rem;margin-top:0}
#app-institucional .grade-scroll-hint{display:block;margin:1.4rem 0 .75rem}
#app-institucional .mdet{min-height:0}}
@media(max-width:620px){
#app-institucional .matrix td:first-child{position:sticky;left:0;background:var(--white);z-index:1;
  box-shadow:1px 0 0 var(--line-2)}
#app-institucional .matrix th:first-child{position:sticky;left:0;background:var(--white);z-index:2}
#app-institucional .matrix .dot{width:44px;height:44px;border-radius:8px}}
#app-institucional /* ══ INSTRUMENTO: kit ══ */
.kitrow{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--line-2)}
#app-institucional .kitrow:first-child{border-top:0}
#app-institucional .tgl{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:.28rem .7rem;font-size:.7rem;
  font-family:"IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:.2s var(--ease);white-space:nowrap}
#app-institucional .tgl.ob{background:var(--navy);color:#fff;border-color:var(--navy);cursor:default}
#app-institucional .tgl.op{background:var(--gold-soft);color:var(--gold-dk);border-color:var(--gold)}
#app-institucional .kitrow b{display:block;font-size:.92rem}
#app-institucional .kitrow span{font-size:.76rem;color:var(--slate)}
#app-institucional .kitrow .pz{font-family:"IBM Plex Mono",monospace;font-size:.88rem;font-variant-numeric:tabular-nums}
#app-institucional .tot{border-top:2px solid var(--navy);margin-top:1rem;padding-top:.9rem;display:flex;justify-content:space-between;align-items:baseline}
#app-institucional .tot b{font-size:1.7rem;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
#app-institucional /* ══ INSTRUMENTO: folhear ══ */
.book{perspective:1600px;display:flex;flex-direction:column;align-items:center;gap:1.1rem}
#app-institucional .spread{width:min(100%,420px);aspect-ratio:3/4;background:var(--white);border:1px solid var(--line);border-radius:6px 14px 14px 6px;
  box-shadow:var(--sh-lg),inset 14px 0 22px -18px rgba(10,26,47,.5);padding:2rem 1.8rem;position:relative;
  transition:.6s var(--ease);transform-style:preserve-3d}
#app-institucional .spread.flip{transform:rotateY(-16deg) scale(.97);opacity:.5}
#app-institucional .spread .pg{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.16em;color:var(--slate-2);position:absolute;bottom:1.2rem;left:0;right:0;text-align:center}
#app-institucional .spread h4{font-family:Fraunces,serif;font-weight:600;font-size:1.25rem;letter-spacing:-.01em}
#app-institucional .spread p{font-size:.84rem;color:var(--slate);line-height:1.7}
#app-institucional .spread .rule{height:1px;background:var(--line);margin:.9rem 0}
#app-institucional .spread .ex{background:var(--cream);border-left:2px solid var(--gold);padding:.7rem .9rem;font-size:.78rem;border-radius:0 8px 8px 0}
#app-institucional /* ══ scrollytelling ══ */
.scrolly{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:start}
@media(max-width:900px){#app-institucional .scrolly{grid-template-columns:1fr}
#app-institucional .sticky{position:static!important}}
#app-institucional .scrolly>.sticky{align-self:start}
#app-institucional .sticky{position:sticky;top:110px;z-index:2}
#app-institucional .sstep{padding:clamp(2rem,8vh,5rem) 0;opacity:.32;transition:.5s var(--ease);border-left:1px solid var(--line);padding-left:1.6rem;margin-left:.4rem}
#app-institucional .sstep.act{opacity:1;border-color:var(--gold)}
#app-institucional .sstep b{display:block;font-size:1.25rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.4rem}
#app-institucional .stage{background:var(--white);border:1px solid var(--line-2);border-radius:20px;padding:1.6rem;box-shadow:var(--sh-lg);min-height:330px;position:relative;overflow:hidden}
#app-institucional .stage .sc{display:none}
#app-institucional .stage .sc.on{display:block;animation:ins-pin .5s var(--ease)}
#app-institucional .fake{font-family:"IBM Plex Mono",monospace;font-size:.72rem}
#app-institucional .fbarrow{display:flex;justify-content:space-between;padding:.5rem .7rem;border-bottom:1px solid var(--line-2);align-items:center}
#app-institucional .fchip{background:var(--cream);border-radius:6px;padding:.15rem .5rem;font-size:.64rem;color:var(--gold-dk)}
#app-institucional .skel{height:9px;background:var(--line-2);border-radius:5px;margin:.5rem 0}
#app-institucional .progressline{height:6px;background:var(--line);border-radius:6px;overflow:hidden;margin-top:.5rem}
#app-institucional .progressline i{display:block;height:100%;background:var(--gold);transition:1.2s var(--ease)}
#app-institucional /* ══ tríade formação ══ */
.triade{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden}
@media(max-width:800px){#app-institucional .triade{grid-template-columns:1fr}}
#app-institucional .tri{background:var(--white);padding:2rem 1.6rem;cursor:pointer;transition:.35s var(--ease);position:relative}
#app-institucional .tri:hover{background:var(--cream)}
#app-institucional .tri.on{background:var(--navy);color:#fff}
#app-institucional .tri.on h3,#app-institucional .tri.on .tw{color:#fff}
#app-institucional .tri .tw{font-family:Fraunces,serif;font-style:italic;font-size:2rem;color:var(--gold);display:block;margin-bottom:.6rem;line-height:1}
#app-institucional .tri p{font-size:.88rem;color:var(--slate);margin:0}
#app-institucional .tri.on p{color:#9FADBC}
#app-institucional .tri .more{max-height:0;overflow:hidden;transition:.45s var(--ease);font-size:.86rem}
#app-institucional .tri.on .more{max-height:220px;margin-top:.9rem}
#app-institucional /* ══ timeline ══ */
.tl{display:flex;gap:1rem;overflow-x:auto;padding:1rem .2rem 1.6rem;scroll-snap-type:x mandatory}
#app-institucional .tl::-webkit-scrollbar{height:4px}
#app-institucional .tl::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
#app-institucional .tlc{flex:0 0 min(300px,80vw);scroll-snap-align:start;background:var(--white);border:1px solid var(--line-2);
  border-radius:var(--r);padding:1.4rem;box-shadow:var(--sh);position:relative}
#app-institucional .tlc::before{content:"";position:absolute;top:0;left:1.4rem;right:1.4rem;height:2px;background:var(--gold);opacity:.3}
#app-institucional .tlc .yr{font-family:"IBM Plex Mono",monospace;font-size:1.5rem;color:var(--gold-dk);letter-spacing:-.02em;display:block;margin-bottom:.5rem}
#app-institucional /* ══ depoimentos ══ */
.tq{background:var(--white);border:1px solid var(--line-2);border-radius:var(--r);padding:1.5rem;box-shadow:var(--sh);break-inside:avoid;margin-bottom:1rem}
#app-institucional .tq p{font-family:Fraunces,serif;font-style:italic;font-size:1.02rem;color:var(--navy);margin-bottom:1.1rem;line-height:1.55}
#app-institucional .tq .who{display:flex;gap:.7rem;align-items:center;border-top:1px solid var(--line-2);padding-top:.9rem}
#app-institucional .tq .av{width:38px;height:38px;border-radius:50%;background:var(--blue-soft);color:var(--blue);flex:none;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem}
#app-institucional .tq .who b{display:block;font-size:.86rem}
#app-institucional .tq .who span{font-size:.75rem;color:var(--slate)}
#app-institucional .masonry{columns:3;column-gap:1rem}
@media(max-width:900px){#app-institucional .masonry{columns:2}}
@media(max-width:600px){#app-institucional .masonry{columns:1}}
#app-institucional /* ══ faq ══ */
details{background:var(--white);border:1px solid var(--line-2);border-radius:12px;margin-bottom:.5rem;box-shadow:var(--sh);transition:.25s var(--ease)}
#app-institucional details[open]{border-color:var(--gold)}
#app-institucional summary{cursor:pointer;padding:1rem 1.2rem;font-weight:600;font-size:.94rem;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
#app-institucional summary::-webkit-details-marker{display:none}
#app-institucional summary::after{content:"";width:9px;height:9px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);
  transform:rotate(45deg);flex:none;transition:.3s var(--ease);margin-top:-4px}
#app-institucional details[open] summary::after{transform:rotate(225deg);margin-top:4px}
#app-institucional details .ans{padding:0 1.2rem 1.15rem;font-size:.9rem;color:var(--slate);max-width:78ch}
#app-institucional /* ══ forms ══ */
.form{background:var(--white);border:1px solid var(--line-2);border-radius:20px;padding:clamp(1.4rem,3vw,2.2rem);box-shadow:var(--sh-lg)}
#app-institucional .frow{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}
#app-institucional .frow.g1{grid-template-columns:1fr}
#app-institucional .frow.g3{grid-template-columns:repeat(3,1fr)}
@media(max-width:640px){#app-institucional .frow,#app-institucional .frow.g3{grid-template-columns:1fr}}
#app-institucional label{font-size:.8rem;font-weight:600;display:block;margin-bottom:.35rem}
#app-institucional input[type=text],#app-institucional input[type=email],#app-institucional input:not([type]),#app-institucional select,#app-institucional textarea{width:100%;font-family:inherit;font-size:.93rem;
  padding:.75rem .9rem;border:1px solid var(--line);background:var(--paper);border-radius:11px;color:var(--navy);transition:.2s var(--ease)}
#app-institucional input:focus,#app-institucional select:focus,#app-institucional textarea:focus{border-color:var(--gold);background:var(--white)}
#app-institucional textarea{min-height:110px;resize:vertical}
#app-institucional /* ══ band ══ */
.band{background:linear-gradient(125deg,var(--navy) 0%,var(--blue) 100%);border-radius:24px;padding:clamp(1.8rem,4.5vw,3.4rem);
  color:#fff;display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap;position:relative;overflow:hidden}
#app-institucional .band .bm{position:absolute;right:1%;bottom:-45%;width:270px;color:#fff;opacity:.07;pointer-events:none}
#app-institucional .band h2{margin:0;max-width:20ch}
#app-institucional .band p{margin:.5rem 0 0;color:#A8B6C6;max-width:44ch}
#app-institucional .band .act{margin-left:auto;display:flex;gap:.6rem;flex-wrap:wrap;position:relative;z-index:2}
#app-institucional /* ══ article ══ */
.article{max-width:700px;margin:0 auto}
#app-institucional .article p{font-size:1.04rem}
#app-institucional .article h2{margin-top:2.2rem;font-size:1.5rem}
#app-institucional .article blockquote{border-left:2px solid var(--gold);margin:1.8rem 0;padding:.3rem 0 .3rem 1.3rem;
  font-family:Fraunces,serif;font-style:italic;font-size:1.15rem;color:var(--blue)}
#app-institucional .rdbar{position:fixed;top:0;left:0;height:2px;background:var(--gold);z-index:80;width:0;transition:width .1s}
#app-institucional .legal{max-width:760px}
#app-institucional .legal h2{font-size:1.2rem;margin-top:2rem}
#app-institucional .legal p,#app-institucional .legal li{font-size:.95rem;color:var(--slate)}
#app-institucional .protoflag{background:var(--navy);color:var(--gold-lt);text-align:center;font-family:"IBM Plex Mono",monospace;
  font-size:.66rem;letter-spacing:.14em;padding:.45rem;text-transform:uppercase;position:relative;z-index:3}
#app-institucional .toast{position:fixed;bottom:5.4rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--navy);color:#fff;
  padding:.75rem 1.3rem;font-size:.86rem;border-radius:999px;opacity:0;pointer-events:none;transition:.3s var(--ease);z-index:99}
#app-institucional .toast.on{opacity:1;transform:translateX(-50%)}
#app-institucional /* ═══════════════ CAMADA 3D ═══════════════ */
.scene{perspective:2000px;perspective-origin:50% 45%}
#app-institucional /* ── transição: virada de página ── */
#turn{position:fixed;inset:0;z-index:150;pointer-events:none;perspective:2400px;perspective-origin:0% 50%;opacity:0}
#app-institucional #turn.go{opacity:1}
#app-institucional #turn .leaf{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d;
  background:linear-gradient(100deg,#FCF7EF,#EFE7DA);box-shadow:0 0 90px rgba(10,26,47,.35);transform:rotateY(0)}
#app-institucional #turn.go .leaf{animation:ins-leafturn .86s var(--ease) forwards}
@keyframes ins-leafturn{0%{transform:rotateY(0);opacity:1}100%{transform:rotateY(-172deg);opacity:.15}}
#app-institucional #turn .leaf::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,26,47,.5),transparent 34%)}
#app-institucional /* ── livro aberto (hero / conteúdo) ── */
.openbook{transform-style:preserve-3d;transition:transform .5s var(--ease);will-change:transform}
#app-institucional .ob{display:grid;grid-template-columns:1fr 22px 1.15fr;background:linear-gradient(180deg,#FDF9F2,#F4EDE1);
  border-radius:8px 14px 14px 8px;box-shadow:var(--sh-lg),0 3px 0 #E6DDCD,0 6px 0 #DED4C2,0 9px 0 #D5CAB6;
  border:1px solid var(--line);overflow:hidden;position:relative}
@media(max-width:760px){#app-institucional .ob{grid-template-columns:1fr}
#app-institucional .ob-gutter{display:none}}
#app-institucional .ob::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 50% 0%,transparent 60%,rgba(10,26,47,.07))}
#app-institucional .ob-page{padding:clamp(1.2rem,2.4vw,2rem)}
#app-institucional .ob-gutter{background:linear-gradient(90deg,rgba(10,26,47,.14),rgba(10,26,47,.03) 45%,rgba(10,26,47,.14))}
#app-institucional .ob .track{flex-direction:column;gap:0;overflow:visible;margin-bottom:0}
#app-institucional .ob .fnode{flex:none;width:100%;display:grid;grid-template-columns:30px 1fr;align-items:center;gap:.7rem;
  text-align:left;padding:.5rem 0;color:var(--slate-2)}
#app-institucional .ob .fnode::before,#app-institucional .ob .fnode::after{display:none}
#app-institucional .ob .fnode i{margin:0;background:transparent;border-color:var(--line);color:var(--slate-2);line-height:24px}
#app-institucional .ob .fnode span{letter-spacing:.1em;font-size:.66rem}
#app-institucional .ob .fnode.on{color:var(--navy)}
#app-institucional .ob .fnode.on i{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 0 0 4px rgba(198,140,51,.2)}
#app-institucional .ob .fnode.done i{border-color:var(--gold);color:var(--gold-dk)}
#app-institucional .ob .fpane h3{color:var(--navy);font-family:Fraunces,serif;font-weight:600;letter-spacing:-.01em}
#app-institucional .ob .fpane p{color:var(--slate)}
#app-institucional .ob .fbar{background:var(--line)}
#app-institucional .ob .pgnum{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.16em;color:var(--slate-2);margin-top:1.2rem}
#app-institucional /* ── estante 3D ── */
.shelf{display:flex;gap:clamp(.6rem,2vw,1.6rem);justify-content:center;flex-wrap:wrap;
  perspective:1600px;padding:2.4rem 0 1.4rem;position:relative}
#app-institucional .shelf::after{content:"";position:absolute;left:8%;right:8%;bottom:1rem;height:10px;border-radius:50%;
  background:radial-gradient(50% 100% at 50% 0,rgba(10,26,47,.22),transparent 70%)}
#app-institucional .bk{width:clamp(96px,15vw,140px);aspect-ratio:2/3;position:relative;transform-style:preserve-3d;cursor:pointer;
  transform:rotateY(-24deg);transition:transform .7s var(--ease);background:none;border:0;padding:0}
#app-institucional .bk:hover{transform:rotateY(-12deg) translateZ(40px) translateY(-8px)}
#app-institucional .bk.on{transform:rotateY(-4deg) translateZ(60px) translateY(-10px)}
#app-institucional .bk .bcov{position:absolute;inset:0;border-radius:3px 7px 7px 3px;transform-origin:left center;
  background:linear-gradient(135deg,#153050,#0B1D35);border:1px solid rgba(224,174,92,.3);
  box-shadow:0 24px 40px -22px rgba(0,0,0,.7);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.6rem;padding:.9rem;transition:transform .8s var(--ease);z-index:3;backface-visibility:hidden}
#app-institucional .bk.on .bcov{transform:rotateY(-148deg)}
#app-institucional .bk .bcov svg{width:38%;color:#E0AE5C}
#app-institucional .bk .bcov b{font-size:.68rem;color:#E5D9C4;text-align:center;line-height:1.35;letter-spacing:.02em}
#app-institucional .bk .bin{position:absolute;inset:0;border-radius:3px 7px 7px 3px;background:linear-gradient(100deg,#F3EADC,#FCF7EF);
  box-shadow:inset 20px 0 26px -22px rgba(10,26,47,.5);padding:.9rem;display:flex;flex-direction:column;justify-content:center;gap:.35rem}
#app-institucional .bk .bin span{display:block;height:4px;border-radius:3px;background:var(--line)}
#app-institucional .bk .bin b{font-family:Fraunces,serif;font-size:.72rem;color:var(--navy);margin-bottom:.3rem;line-height:1.25}
#app-institucional .bk .bsp{position:absolute;left:0;top:0;bottom:0;width:16px;transform:rotateY(-90deg);transform-origin:left center;
  background:linear-gradient(180deg,#1A3959,#0A1A2F)}
#app-institucional .bklabel{text-align:center;font-size:.78rem;font-weight:600;margin-top:.7rem}
#app-institucional /* ── livro folheável (produto) ── */
.tome3d{position:relative;width:min(100%,600px);aspect-ratio:11/8;margin:0 auto;
  perspective:2400px;transform-style:preserve-3d}
#app-institucional .t3-cover{position:absolute;z-index:20;top:0;bottom:0;left:25%;width:50%;
  padding:0;border:1px solid var(--line);border-radius:7px;background:var(--cream);overflow:hidden;
  box-shadow:var(--sh-lg);cursor:pointer;opacity:0;pointer-events:none;transform:rotateY(-88deg);
  transform-origin:left center;transition:transform .65s var(--ease),opacity .4s var(--ease)}
#app-institucional .t3-cover img{display:block;width:100%;height:100%;object-fit:contain}
#app-institucional .t3-cover span{display:grid;place-items:center;height:100%;padding:1.5rem;font-family:Fraunces,serif;font-size:1.4rem;text-align:center}
#app-institucional .tome3d.closed .t3-cover{opacity:1;pointer-events:auto;transform:none}
#app-institucional .tome3d.closed .t3-base,#app-institucional .tome3d.closed .leaf3{visibility:hidden}
#app-institucional .t3-cover:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media(prefers-reduced-motion:reduce){#app-institucional .t3-cover{transition:none}}
@media(max-width:640px){#app-institucional .tome3d{aspect-ratio:3/4}}
@media(max-width:640px){#app-institucional .t3-cover{left:10%;width:80%}}
#app-institucional .t3-base{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;border-radius:8px;
  background:linear-gradient(180deg,#FDF9F2,#F1E9DC);box-shadow:var(--sh-lg);border:1px solid var(--line);overflow:hidden}
#app-institucional .t3-base>div{padding:clamp(1rem,2.4vw,1.8rem);position:relative}
#app-institucional .t3-base>div:first-child{box-shadow:inset -22px 0 26px -24px rgba(10,26,47,.5)}
#app-institucional .t3-base>div:last-child{box-shadow:inset 22px 0 26px -24px rgba(10,26,47,.5)}
#app-institucional .leaf3{position:absolute;top:0;bottom:0;left:50%;width:50%;transform-origin:left center;transform-style:preserve-3d;
  transition:transform 1s var(--ease);border-radius:0 8px 8px 0}
#app-institucional .leaf3.flip{transform:rotateY(-180deg)}
#app-institucional .leaf3 .fc{position:absolute;inset:0;backface-visibility:hidden;padding:clamp(1rem,2.4vw,1.8rem);
  background:linear-gradient(180deg,#FDF9F2,#F1E9DC);border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;overflow:hidden}
#app-institucional .leaf3 .fc.bk2{transform:rotateY(180deg);border-radius:8px 0 0 8px;border:1px solid var(--line);border-right:0;
  box-shadow:inset 22px 0 26px -24px rgba(10,26,47,.5)}
#app-institucional .pgt{font-family:Fraunces,serif;font-weight:600;font-size:clamp(1rem,2vw,1.25rem);color:var(--navy);margin-bottom:.5rem}
#app-institucional .pgx{font-size:clamp(.72rem,1.5vw,.84rem);color:var(--slate);line-height:1.75}
#app-institucional .pgn{position:absolute;bottom:.9rem;left:0;right:0;text-align:center;font-family:"IBM Plex Mono",monospace;font-size:.58rem;letter-spacing:.16em;color:var(--slate-2)}
#app-institucional .pgex{background:var(--cream);border-left:2px solid var(--gold);padding:.6rem .8rem;font-size:.74rem;border-radius:0 6px 6px 0;margin-top:.8rem}
#app-institucional /* ── modo leitura ── */
#reader{position:fixed;inset:0;z-index:180;background:linear-gradient(180deg,#FCF7EF,#F2EADD);
  opacity:0;pointer-events:none;transform:scale(.94);transition:.7s var(--ease);overflow-y:auto}
#app-institucional #reader.on{opacity:1;pointer-events:auto;transform:none}
#app-institucional #reader .rwrap{max-width:760px;margin:0 auto;padding:clamp(3rem,9vh,6rem) 1.6rem 6rem}
#app-institucional #reader h2{font-family:Fraunces,serif;font-weight:600;letter-spacing:-.015em}
#app-institucional #reader p{font-size:1.02rem;color:#3D4854}
#app-institucional #reader .close{position:fixed;top:1.2rem;right:1.2rem;background:var(--white);border:1px solid var(--line);
  border-radius:999px;padding:.5rem 1.1rem;font-size:.8rem;cursor:pointer;z-index:2}
#app-institucional #reader .marg{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.16em;color:var(--gold-dk);text-transform:uppercase}
#app-institucional #reader .cap::first-letter{font-family:Fraunces,serif;font-size:3.4rem;float:left;line-height:.82;padding:.1rem .5rem .1rem 0;color:var(--gold)}
#app-institucional /* ── tilt de cartões ── */
.tilt{transform-style:preserve-3d;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
@media(prefers-reduced-motion:reduce){#app-institucional .bk,#app-institucional .leaf3,#app-institucional #turn .leaf,#app-institucional .tilt{animation:none!important;transition:none!important}}
#app-institucional /* ═══════ WEBGL ═══════ */
#bookHost{position:relative}
#app-institucional #gl{display:none;position:relative;width:100%;aspect-ratio:4/3;margin:0;cursor:grab;touch-action:pan-y}
@media(min-width:961px){#app-institucional /* o canvas é filho direto da seção do hero — nenhum ancestral com perspective
     no caminho —,#app-institucional então o tamanho do livro não interfere na coluna de texto */
  #p-home .hero{overflow:visible}
#app-institucional #gl{position:absolute;top:50%;transform:translateY(-50%);
    left:48%;right:-12vw;width:auto;height:min(76vh,660px);aspect-ratio:auto;z-index:1;margin:0}}
@media(max-width:960px){#app-institucional #gl{display:none!important}}
#app-institucional #gl.on{display:block}
#app-institucional .hero.glon #heroBook{display:none}
#app-institucional #gl canvas{display:block;width:100%;height:100%}
#app-institucional #gl:active{cursor:grabbing}
#app-institucional .glhint{position:absolute;bottom:1%;left:50%;transform:translateX(-50%);font-family:"IBM Plex Mono",monospace;
  font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--slate-2);pointer-events:none;
  opacity:0;transition:opacity .6s;white-space:nowrap}
#app-institucional #gl.on .glhint{opacity:1}
#app-institucional /* cursor */
.cur{position:fixed;top:0;left:0;width:26px;height:26px;border:1px solid var(--gold);border-radius:50%;
  pointer-events:none;z-index:190;transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),
  background .3s var(--ease),border-color .3s var(--ease);mix-blend-mode:multiply;display:none}
#app-institucional .curdot{position:fixed;top:0;left:0;width:4px;height:4px;background:var(--navy);border-radius:50%;
  pointer-events:none;z-index:191;transform:translate(-50%,-50%);display:none}
#app-institucional.hascur .cur,#app-institucional.hascur .curdot{display:block}
#app-institucional .cur.big{width:64px;height:64px;background:rgba(198,140,51,.12);border-color:transparent}
#app-institucional .cur.drag{width:52px;height:52px;border-color:var(--navy)}
@media(pointer:coarse){#app-institucional.hascur .cur,#app-institucional.hascur .curdot{display:none}}
@media(prefers-reduced-motion:reduce){#app-institucional #gl{display:none!important}}
#app-institucional /* ═══════ ROLAGEM NARRATIVA ═══════ */
.rv.line{opacity:1;transform:none}
#app-institucional .rv.line>span{display:block;overflow:hidden}
#app-institucional .rv.line>span>i{display:block;font-style:inherit;transform:translateY(105%);
  transition:transform .95s var(--ease)}
#app-institucional .rv.line.in>span>i{transform:none}
#app-institucional .rv.line.in>span:nth-child(2)>i{transition-delay:.09s}
#app-institucional .rv.line.in>span:nth-child(3)>i{transition-delay:.18s}
#app-institucional .rv.line.in>span:nth-child(4)>i{transition-delay:.27s}
#app-institucional section{transition:background-color .9s var(--ease)}
#app-institucional .par{will-change:transform}
#app-institucional .capnum{position:absolute;top:clamp(1rem,4vw,2.4rem);right:clamp(1rem,4vw,2.4rem);
  font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.2em;color:var(--slate-2);
  text-transform:uppercase;opacity:0;transform:translateY(-8px);transition:.7s var(--ease);pointer-events:none;z-index:3}
#app-institucional .capnum.in{opacity:.75;transform:none}
#app-institucional section.nv .capnum{color:rgba(255,255,255,.45)}
#app-institucional .prog{position:fixed;left:0;right:0;top:0;height:2px;background:transparent;z-index:75;pointer-events:none}
#app-institucional .prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-lt));transition:width .12s linear}
@media(prefers-reduced-motion:reduce){#app-institucional .rv.line>span>i{transform:none!important}
#app-institucional .par{transform:none!important}}
#app-institucional /* ═══════ PAINEL DE DIAGNÓSTICO (remover na versão final) ═══════ */
#diag{position:fixed;left:0;right:0;bottom:0;z-index:999;background:#1A0F0C;color:#F0C8B0;
  font-family:"IBM Plex Mono",monospace;font-size:.72rem;line-height:1.7;padding:.9rem 1.1rem;
  max-height:44vh;overflow:auto;display:none;border-top:2px solid #9B2C22;box-shadow:0 -20px 40px rgba(0,0,0,.3)}
#app-institucional #diag.on{display:block}
#app-institucional #diag h6{margin:0 0 .5rem;color:#FF8A6E;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-family:inherit;font-weight:500}
#app-institucional #diag .ln{border-top:1px solid rgba(255,255,255,.09);padding:.4rem 0;white-space:pre-wrap;word-break:break-word}
#app-institucional #diag .ok{color:#8FD3A8}
#app-institucional #diag .bar{display:flex;gap:.5rem;margin-top:.7rem;position:sticky;bottom:0;background:#1A0F0C;padding-top:.5rem}
#app-institucional #diag button{background:transparent;border:1px solid rgba(255,255,255,.28);color:#F0C8B0;
  border-radius:999px;padding:.35rem .9rem;font-family:inherit;font-size:.68rem;cursor:pointer}
#app-institucional #diag button:hover{border-color:#fff;color:#fff}
#app-institucional footer{background:var(--navy);color:#A9B4C1;padding:clamp(2.6rem,5vw,4rem) 0 1.6rem;font-size:.88rem;position:relative;z-index:2}
#app-institucional footer h5{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 .9rem;font-weight:500}
#app-institucional footer a{color:#A9B4C1;text-decoration:none;display:block;padding:.22rem 0;font-size:.85rem;transition:.2s}
#app-institucional footer a:hover{color:#fff;padding-left:4px}
#app-institucional #fgrid{display:grid;grid-template-columns:minmax(220px,1.7fr) repeat(4,minmax(0,1fr));gap:2rem}
@media(max-width:1050px){#app-institucional #fgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){#app-institucional #fgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}#app-institucional #fgrid>div:first-child{grid-column:1/-1}}
/* ══════ Loja da família ══════ */
#app-loja{
  --navy:#0A1A2F;--navy-2:#12294A;--blue:#1B3B66;--blue-soft:#E9EEF5;
  --gold:#C68C33;--gold-dk:#A9752A;--gold-lt:#E0AE5C;--gold-soft:#F7E9D2;
  --cream:#FCF2E7;--paper:#FBFAF6;--white:#fff;
  --line:#E4DCCF;--line-2:#EFE9DE;--slate:#5B6674;--slate-2:#8A94A0;
  --ok:#2F6B4F;--warn:#8A5A12;--err:#9B2C22;
  --r:16px;--ease:cubic-bezier(.2,.75,.25,1);
  --sh:0 1px 2px rgba(10,26,47,.05),0 14px 34px -16px rgba(10,26,47,.16);
  --sh-lg:0 30px 70px -26px rgba(10,26,47,.34);
}
#app-loja *{box-sizing:border-box}
#app-loja{margin:0;background:var(--paper);color:var(--navy);
  font-family:"Plus Jakarta Sans",system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
#app-loja h1,#app-loja h2,#app-loja h3{font-weight:700;line-height:1.13;margin:0 0 .4em;letter-spacing:-.03em}
#app-loja h1{font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:800}
#app-loja h2{font-size:1.3rem}
#app-loja h3{font-size:1.02rem}
#app-loja p{margin:0 0 .9em}
#app-loja em.ac{font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:400;color:var(--gold)}
#app-loja .grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.45;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}
#app-loja .wrap{max-width:940px;margin:0 auto;padding:0 clamp(1.1rem,4vw,2rem);position:relative;z-index:2}
#app-loja .eyebrow{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-dk);display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.9rem}
#app-loja .eyebrow::before{content:"";width:24px;height:1px;background:var(--gold)}
#app-loja .muted{color:var(--slate);font-size:.9rem}
#app-loja .hint{font-size:.79rem;color:var(--slate-2)}
#app-loja .protoflag{background:var(--navy);color:var(--gold-lt);text-align:center;font-family:"IBM Plex Mono",monospace;
  font-size:.66rem;letter-spacing:.14em;padding:.45rem;text-transform:uppercase;position:relative;z-index:3}
#app-loja /* header */
header{background:rgba(251,250,246,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-2);
  position:sticky;top:0;z-index:30}
#app-loja .hbar{max-width:940px;margin:0 auto;padding:.75rem clamp(1.1rem,4vw,2rem);display:flex;align-items:center;gap:1rem}
#app-loja .lockup{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--navy)}
#app-loja .lockup .mk{width:30px;height:34px;flex:none}
#app-loja .lockup .wd{height:13px}
#app-loja .steps{display:flex;margin-left:auto;gap:.15rem;flex-wrap:wrap}
#app-loja .hbar .btn{flex:none}
#app-loja .steps span{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--slate-2);padding:.3rem .55rem;border-radius:999px}
#app-loja .steps span.done{color:var(--slate)}
#app-loja .steps span.now{color:#fff;background:var(--navy)}
@media(max-width:760px){#app-loja .steps{display:none}}
#app-loja main{padding:2.4rem 0 5rem}
#app-loja /* cards */
.card{background:var(--white);border:1px solid var(--line-2);border-radius:var(--r);
  padding:clamp(1.3rem,3vw,2rem);box-shadow:var(--sh);margin-bottom:1rem}
#app-loja .card.top{border-top:3px solid var(--gold)}
#app-loja .screen{display:none}
#app-loja .screen.on{display:block;animation:loj-pin .5s var(--ease)}
#app-loja #s-conta.on{min-height:calc(100vh - 175px);display:flex;flex-direction:column;justify-content:center}
#app-loja #s-conta.on #contaLogin{width:100%;margin-block:auto}
#app-loja .conta-rodape{justify-content:space-between;align-items:center}
@keyframes loj-pin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
#app-loja /* forms */
label{font-size:.79rem;font-weight:600;display:block;margin-bottom:.32rem}
#app-loja input,#app-loja select{width:100%;font-family:inherit;font-size:.94rem;padding:.72rem .85rem;border:1px solid var(--line);
  background:var(--paper);border-radius:11px;color:var(--navy);transition:.2s var(--ease)}
#app-loja input:focus,#app-loja select:focus{border-color:var(--gold);background:var(--white);outline:none}
#app-loja :focus-visible{outline:2px solid var(--gold);outline-offset:3px}
#app-loja .row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}
#app-loja .row.g1{grid-template-columns:1fr}
#app-loja .row.g3{grid-template-columns:repeat(3,1fr)}
@media(max-width:620px){#app-loja .row,#app-loja .row.g3{grid-template-columns:1fr}}
#app-loja .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;font-size:.9rem;
  font-weight:600;padding:.78rem 1.5rem;border-radius:999px;border:1px solid transparent;background:var(--gold);
  color:#fff;cursor:pointer;transition:.2s var(--ease);text-decoration:none}
#app-loja .btn:hover{background:var(--gold-dk);transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(198,140,51,.7)}
#app-loja .btn.gh{background:transparent;color:var(--navy);border-color:var(--line)}
#app-loja .btn.gh:hover{background:var(--white);border-color:var(--slate-2);box-shadow:var(--sh)}
#app-loja .btn.sm{padding:.5rem 1.05rem;font-size:.82rem}
#app-loja .btn.block{width:100%}
#app-loja .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
#app-loja .acts{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.4rem}
#app-loja /* código */
.codebox{text-align:center;padding:clamp(2rem,5vw,3.4rem) 1.5rem}
#app-loja #codigo{font-family:"IBM Plex Mono",monospace;font-size:clamp(1.2rem,3.4vw,1.7rem);letter-spacing:.34em;
  text-align:center;text-transform:uppercase;padding:1rem;background:var(--gold-soft);border:1px dashed var(--gold);
  color:var(--gold-dk);max-width:440px;margin:0 auto;border-radius:12px}
#app-loja .code{font-family:"IBM Plex Mono",monospace;letter-spacing:.14em;background:var(--gold-soft);
  border:1px dashed var(--gold);color:var(--gold-dk);padding:.14rem .5rem;border-radius:6px;font-size:.8rem}
#app-loja .err{color:var(--err);font-size:.86rem;margin-top:.8rem;min-height:1.3em}
#app-loja /* itens */
.item{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:start;
  padding:.95rem 0;border-top:1px solid var(--line-2)}
#app-loja .item:first-of-type{border-top:0}
#app-loja .item input[type=checkbox]{width:19px;height:19px;margin-top:.2rem;accent-color:var(--gold)}
#app-loja .item .lk{width:19px;height:19px;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:.72rem;margin-top:.2rem}
#app-loja .item b{display:block;font-size:.96rem;font-weight:600}
#app-loja .item .mt{font-size:.76rem;color:var(--slate);font-family:"IBM Plex Mono",monospace;letter-spacing:.03em}
#app-loja .item .pz{font-family:"IBM Plex Mono",monospace;font-size:.94rem;white-space:nowrap;font-variant-numeric:tabular-nums}
#app-loja .tot{border-top:2px solid var(--navy);margin-top:1.3rem;padding-top:1rem}
#app-loja .tl{display:flex;justify-content:space-between;font-size:.9rem;padding:.28rem 0}
#app-loja .tl .v{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
#app-loja .tl.big{font-size:1.45rem;font-weight:800;letter-spacing:-.03em;padding-top:.7rem;border-top:1px dashed var(--line);margin-top:.6rem}
#app-loja /* faixa resumo */
.strip{display:flex;flex-wrap:wrap;gap:1.6rem;background:var(--navy);color:#C9D3DE;
  padding:1.1rem clamp(1.2rem,3vw,1.8rem);border-radius:var(--r);margin-bottom:1rem;font-size:.86rem}
#app-loja .strip div span{display:block;font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--gold-lt);margin-bottom:.15rem}
#app-loja .strip div b{color:#fff;font-weight:600}
#app-loja /* pagamento */
.tabs{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;margin-bottom:1.4rem;padding:3px;background:var(--paper)}
#app-loja .tabs button{flex:1;padding:.62rem;background:transparent;border:0;border-radius:999px;
  font-family:inherit;font-size:.88rem;font-weight:500;cursor:pointer;color:var(--slate);transition:.2s var(--ease)}
#app-loja .tabs button.on{background:var(--navy);color:#fff}
#app-loja .pix{width:100%}
#app-loja .qr{width:160px;height:160px;border-radius:10px;background:repeating-conic-gradient(var(--navy) 0 25%,#fff 0 50%) 0 0/15px 15px;
  border:8px solid #fff;box-shadow:var(--sh)}
#app-loja .copia{font-family:"IBM Plex Mono",monospace;font-size:.7rem;word-break:break-all;background:var(--paper);
  border:1px solid var(--line);padding:.7rem;color:var(--slate);border-radius:10px}
#app-loja .badge{display:inline-flex;align-items:center;gap:.4rem;font-family:"IBM Plex Mono",monospace;font-size:.66rem;
  letter-spacing:.1em;text-transform:uppercase;padding:.22rem .6rem;border:1px solid currentColor;border-radius:999px}
#app-loja .b-ok{color:var(--ok)}
#app-loja .b-warn{color:var(--warn)}
#app-loja .b-mut{color:var(--slate)}
#app-loja .pulse{animation:loj-p 1.5s infinite}
@keyframes loj-p{50%{opacity:.4}}
@media(prefers-reduced-motion:reduce){#app-loja .pulse{animation:none}
#app-loja .screen.on{animation:none}}
#app-loja .note{background:var(--cream);border-left:2px solid var(--gold);padding:.85rem 1rem;font-size:.86rem;border-radius:0 10px 10px 0;margin:1.1rem 0}
#app-loja /* linha do tempo */
.tline{list-style:none;padding:0;margin:1.2rem 0 0}
#app-loja .tline li{display:grid;grid-template-columns:1fr;gap:.2rem;padding:.85rem 0 .85rem 1.5rem;
  border-left:1px solid var(--line);margin-left:6px;position:relative}
#app-loja .tline li::before{content:"";position:absolute;left:-5px;top:1.25rem;width:9px;height:9px;border-radius:50%;background:var(--line)}
#app-loja .tline li.done::before{background:var(--ok)}
#app-loja .tline li.now::before{background:var(--gold);box-shadow:0 0 0 4px rgba(198,140,51,.2)}
#app-loja .tline b{font-size:.94rem;font-weight:600}
#app-loja .tline span{font-size:.82rem;color:var(--slate)}
/* vitrine do material domiciliar */
/* cartão do código de retirada */
#app-loja .retirada{margin:1.5rem 0;border:1px solid var(--gold);border-radius:16px;background:var(--gold-soft);
  padding:1.3rem;display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap}
#app-loja .retirada .qr{background:#fff;padding:.6rem;border-radius:12px;line-height:0;flex:none;
  box-shadow:0 10px 26px -16px rgba(10,26,47,.5)}
#app-loja .retirada .info{flex:1;min-width:210px}
#app-loja .retirada .cod{font-family:"IBM Plex Mono",monospace;font-size:clamp(1.5rem,4.4vw,2.1rem);
  font-weight:600;letter-spacing:.12em;color:var(--navy);margin:.2rem 0 .1rem}
#app-loja .retirada .acoes{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}
#app-loja .retirada.usada{border-color:var(--line);background:var(--cream);opacity:.85}
#app-loja .abas{display:flex;gap:.3rem;background:var(--cream);padding:.28rem;border-radius:999px}
#app-loja .abas button{border:0;background:transparent;font:inherit;font-size:.82rem;font-weight:600;color:var(--slate);
  padding:.42rem .95rem;border-radius:999px;cursor:pointer;white-space:nowrap;transition:.22s var(--ease)}
#app-loja .abas button.on{background:var(--white);color:var(--navy);box-shadow:0 2px 10px -4px rgba(10,26,47,.35)}
#app-loja .vitrine{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:1rem;margin-top:1.4rem}
#app-loja .prod{border:1px solid var(--line);border-radius:14px;background:var(--white);overflow:hidden;
  display:flex;flex-direction:column;transition:.24s var(--ease)}
#app-loja .prod:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 18px 40px -26px rgba(10,26,47,.5)}
#app-loja .prod .capa{aspect-ratio:3/4;background:linear-gradient(150deg,var(--cream),#EFE7DA);
  display:flex;align-items:center;justify-content:center;position:relative}
#app-loja .prod .capa svg{width:38%;color:var(--navy);opacity:.28}
#app-loja .prod .capa img{width:100%;height:100%;object-fit:cover}
#app-loja .prod .selo{position:absolute;top:.6rem;left:.6rem}
#app-loja .prod .corpo{padding:.85rem .9rem 1rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
#app-loja .prod .disc{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-dk)}
#app-loja .prod b{font-size:.94rem;line-height:1.3}
#app-loja .prod .pz{font-family:"IBM Plex Mono",monospace;font-size:1.05rem;font-weight:600;margin-top:.2rem}
#app-loja .prod .acao{margin-top:auto;padding-top:.7rem}
#app-loja .prod .esgotado{opacity:.55}
#app-loja .qtd{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}
#app-loja .qtd button{border:0;background:var(--white);font:inherit;font-size:1rem;line-height:1;
  width:30px;height:30px;cursor:pointer;color:var(--navy)}
#app-loja .qtd button:disabled{opacity:.35;cursor:not-allowed}
#app-loja .qtd span{min-width:30px;text-align:center;font-family:"IBM Plex Mono",monospace;font-size:.88rem}
#app-loja .g2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:620px){#app-loja .g2{grid-template-columns:1fr}}
#app-loja .box{border:1px solid var(--line-2);border-radius:12px;padding:1rem;background:var(--paper)}
#app-loja .box label{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);font-weight:500}
#app-loja #doc{position:fixed;inset:0;z-index:120;background:rgba(10,26,47,.55);backdrop-filter:blur(4px);
  display:none;overflow-y:auto;padding:clamp(1rem,4vw,3rem)}
#app-loja #doc.on{display:block}
#app-loja #docCorpo{max-width:760px;margin:0 auto;background:#fff;border-radius:16px;padding:clamp(1.4rem,4vw,2.4rem);
  box-shadow:0 40px 90px -30px rgba(10,26,47,.6)}
#app-loja .docTopo{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;
  border-bottom:2px solid var(--navy);padding-bottom:1rem;margin-bottom:1.2rem}
#app-loja .docSelo{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dk)}
#app-loja .docGrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.2rem}
@media(max-width:620px){#app-loja .docGrid{grid-template-columns:1fr}}
#app-loja .docTab{width:100%;border-collapse:collapse;font-size:.84rem}
#app-loja .docTab th{font-family:"IBM Plex Mono",monospace;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--slate);text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--line)}
#app-loja .docTab td{padding:.5rem .4rem;border-bottom:1px solid var(--line-2)}
@media print{#app-loja>*:not(#doc){display:none!important}
#app-loja #doc{position:static;background:#fff;padding:0}
#app-loja #docCorpo{box-shadow:none;max-width:none}
#app-loja #doc button{display:none}}
#app-loja .rodape{border-top:1px solid var(--line-2);margin-top:2.4rem;padding:1.2rem 0;
  display:flex;gap:1rem;flex-wrap:wrap;align-items:center;font-size:.8rem;color:var(--slate-2)}
#app-loja .rodape a{color:var(--gold-dk);text-decoration:none;font-weight:600}
#app-loja .rodape a:hover{text-decoration:underline}
#app-loja .toast{position:fixed;bottom:5.4rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--navy);
  color:#fff;padding:.7rem 1.3rem;font-size:.85rem;border-radius:999px;opacity:0;pointer-events:none;
  transition:.28s var(--ease);z-index:130}
#app-loja .toast.on{opacity:1;transform:translateX(-50%)}
/* ══════ Portal da escola ══════ */
#app-portal{
  --navy:#0A1A2F;--navy-2:#12294A;--blue:#1B3B66;--blue-soft:#E9EEF5;
  --gold:#C68C33;--gold-dk:#A9752A;--gold-lt:#E0AE5C;--gold-soft:#F7E9D2;
  --cream:#FCF2E7;--paper:#FBFAF6;--white:#fff;
  --line:#E4DCCF;--line-2:#EFE9DE;--slate:#5B6674;--slate-2:#8A94A0;
  --ok:#2F6B4F;--warn:#8A5A12;--err:#9B2C22;
  --r:14px;--ease:cubic-bezier(.2,.75,.25,1);
  --sh:0 1px 2px rgba(10,26,47,.05),0 12px 28px -16px rgba(10,26,47,.16);
  --sh-lg:0 26px 60px -26px rgba(10,26,47,.32);
}
#app-portal *{box-sizing:border-box}
#app-portal{margin:0;background:var(--paper);color:var(--navy);
  font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
#app-portal h1,#app-portal h2,#app-portal h3{font-weight:700;margin:0 0 .35em;line-height:1.15;letter-spacing:-.028em}
#app-portal h1{font-size:1.8rem;font-weight:800}
#app-portal h2{font-size:1.18rem}
#app-portal h3{font-size:1rem}
#app-portal p{margin:0 0 .8em}
#app-portal em.ac{font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:400;color:var(--gold)}
#app-portal .protoflag{background:var(--navy);color:var(--gold-lt);text-align:center;font-family:"IBM Plex Mono",monospace;
  font-size:.66rem;letter-spacing:.14em;padding:.42rem;text-transform:uppercase}
#app-portal .eyebrow{font-family:"IBM Plex Mono",monospace;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-dk);display:inline-flex;align-items:center;gap:.55rem;margin-bottom:.6rem}
#app-portal .eyebrow::before{content:"";width:20px;height:1px;background:var(--gold)}
#app-portal .muted{color:var(--slate);font-size:.88rem}
#app-portal .hint{font-size:.78rem;color:var(--slate-2)}
#app-portal /* login */
#login{min-height:86vh;display:flex;align-items:center;justify-content:center;padding:2rem}
#app-portal .loginbox{background:var(--white);border:1px solid var(--line-2);border-top:3px solid var(--gold);
  border-radius:18px;padding:2.4rem;max-width:410px;width:100%;box-shadow:var(--sh-lg)}
#app-portal /* shell */
#app{display:none;grid-template-columns:252px 1fr;min-height:100vh}
#app-portal #app.on{display:grid}
#app-portal .topbar{display:none;position:sticky;top:0;z-index:70;background:rgba(251,250,246,.94);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-2);padding:.7rem clamp(1rem,4vw,1.4rem);align-items:center;gap:.8rem}
#app-portal .topbar .tt{font-weight:700;font-size:.95rem;letter-spacing:-.02em}
.panel-site-link{color:var(--gold-dk);font-size:.82rem;font-weight:700;text-decoration:none;white-space:nowrap}
.topbar .panel-site-link{margin-left:auto}
.panel-sidebar-link{display:block;margin:0 1.4rem 1rem;color:var(--gold-lt)}
#app-portal .burger{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:.5rem .9rem;
  font-size:.8rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem}
#app-portal .burger i{display:block;width:16px;height:10px;border-top:1.5px solid var(--navy);border-bottom:1.5px solid var(--navy);position:relative}
#app-portal .burger i::after{content:"";position:absolute;top:3.5px;left:0;right:0;height:1.5px;background:var(--navy)}
#app-portal #veu{position:fixed;inset:0;background:rgba(10,26,47,.5);backdrop-filter:blur(3px);z-index:88;
  opacity:0;pointer-events:none;transition:.35s var(--ease)}
#app-portal #veu.on{opacity:1;pointer-events:auto}
@media(max-width:960px){#app-portal #app.on{grid-template-columns:1fr}
#app-portal .topbar{display:flex}
#app-portal aside{position:fixed;top:0;left:0;bottom:0;width:min(272px,84vw);z-index:90;
    transform:translateX(-102%);transition:transform .42s var(--ease);box-shadow:30px 0 80px -30px rgba(10,26,47,.6)}
#app-portal aside.open{transform:none}
#app-portal main{padding-top:1.2rem}}
#app-portal aside{background:var(--navy);color:#A9B4C1;padding:1.4rem 0;display:flex;flex-direction:column}
#app-portal .brand{padding:0 1.4rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:.7rem;align-items:flex-start}
#app-portal .brand-art svg{width:32px;color:#fff;flex:none}
#app-portal .brand-context b{font-size:.96rem;color:#fff;display:block;letter-spacing:-.02em;line-height:1.3}
#app-portal .brand-context small{display:block;font-family:"IBM Plex Mono",monospace;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:.2rem}
#app-portal nav{padding:.9rem 0;flex:1}
#app-portal nav a{display:block;padding:.48rem 1.4rem;font-size:.86rem;text-decoration:none;color:#A9B4C1;
  border-left:2px solid transparent;cursor:pointer;transition:.18s var(--ease)}
#app-portal nav a:hover{color:#fff;background:rgba(255,255,255,.05)}
#app-portal nav a.on{color:#fff;border-color:var(--gold);background:rgba(255,255,255,.07);font-weight:600}
#app-portal nav .grp{font-family:"IBM Plex Mono",monospace;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;
  color:#69737F;padding:1rem 1.4rem .35rem}
#app-portal .who{padding:1rem 1.4rem 0;border-top:1px solid rgba(255,255,255,.1);font-size:.78rem;color:#7C8794}
#app-portal main{padding:2rem clamp(1.2rem,3vw,2.4rem);overflow-x:auto}
#app-portal .view{display:none}
#app-portal .view.on{display:block;animation:por-pin .45s var(--ease)}
@keyframes por-pin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#app-portal .topline{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:5.4rem}
#app-portal .topline .btns{margin-left:auto;display:flex;gap:.5rem;flex-wrap:wrap}
#app-portal /* blocos */
.card{background:var(--white);border:1px solid var(--line-2);border-radius:var(--r);padding:1.35rem;
  margin-bottom:1rem;box-shadow:var(--sh)}
#app-portal .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1rem;margin-bottom:5.4rem}
#app-portal .kpi{background:var(--white);border:1px solid var(--line-2);border-radius:var(--r);padding:1.15rem 1.3rem;box-shadow:var(--sh)}
#app-portal .kpi span{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--slate);display:block;margin-bottom:.35rem}
#app-portal .kpi b{font-size:1.85rem;font-weight:800;line-height:1;display:block;letter-spacing:-.04em;color:var(--blue);font-variant-numeric:tabular-nums}
#app-portal .kpi i{font-style:normal;font-size:.75rem;color:var(--slate)}
#app-portal .tw{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line-2);background:var(--white);
  box-shadow:var(--sh);-webkit-overflow-scrolling:touch}
#app-portal .tw::-webkit-scrollbar{height:8px}
#app-portal .tw::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
#app-portal .tw+.hint.rolar{display:none}
@media(max-width:900px){#app-portal .tw+.hint.rolar{display:block;margin:.5rem 0 1rem}}
#app-portal table{width:100%;min-width:1200px;border-collapse:collapse;background:var(--white);font-size:.87rem}
#app-portal th{font-family:"IBM Plex Mono",monospace;font-size:.61rem;letter-spacing:.13em;text-transform:uppercase;color:var(--slate);
  text-align:left;padding:.75rem .85rem;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:500;background:var(--cream)}
#app-portal td{padding:.7rem .85rem;border-bottom:1px solid var(--line-2);vertical-align:top}
#app-portal tbody tr:hover td{background:var(--paper)}
#app-portal .mono{font-family:"IBM Plex Mono",monospace;font-size:.83rem;font-variant-numeric:tabular-nums}
#app-portal .badge{display:inline-flex;align-items:center;gap:.3rem;font-family:"IBM Plex Mono",monospace;font-size:.62rem;
  letter-spacing:.1em;text-transform:uppercase;padding:.18rem .55rem;border:1px solid currentColor;border-radius:999px;white-space:nowrap}
#app-portal .b-ok{color:var(--ok)}
#app-portal .b-warn{color:var(--warn)}
#app-portal .b-err{color:var(--err)}
#app-portal .b-mut{color:var(--slate-2)}
#app-portal .b-act{color:var(--gold-dk)}
#app-portal .btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:inherit;font-size:.84rem;
  font-weight:600;padding:.55rem 1.1rem;border:1px solid transparent;background:var(--gold);color:#fff;
  border-radius:999px;cursor:pointer;transition:.2s var(--ease);text-decoration:none}
#app-portal .btn:hover{background:var(--gold-dk);transform:translateY(-1px);box-shadow:0 10px 22px -12px rgba(198,140,51,.7)}
#app-portal .btn.gh{background:transparent;color:var(--navy);border-color:var(--line)}
#app-portal .btn.gh:hover{background:var(--white);border-color:var(--slate-2);box-shadow:var(--sh)}
#app-portal .btn.sm{padding:.34rem .78rem;font-size:.76rem}
#app-portal .btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
#app-portal :focus-visible{outline:2px solid var(--gold);outline-offset:3px}
#app-portal label{font-family:"IBM Plex Mono",monospace;font-size:.61rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--slate);display:block;margin-bottom:.28rem}
#app-portal input,#app-portal select{width:100%;font-family:inherit;font-size:.9rem;padding:.55rem .7rem;border:1px solid var(--line);
  background:var(--paper);border-radius:10px;color:var(--navy)}
#app-portal input:focus,#app-portal select:focus{border-color:var(--gold);background:var(--white);outline:none}
#app-portal .filters{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
#app-portal .filters>div{min-width:158px}
#app-portal .code{font-family:"IBM Plex Mono",monospace;letter-spacing:.14em;background:var(--gold-soft);
  border:1px dashed var(--gold);color:var(--gold-dk);padding:.12rem .5rem;border-radius:6px;font-size:.79rem;white-space:nowrap}
#app-portal .note{background:var(--cream);border-left:2px solid var(--gold);padding:.8rem .95rem;font-size:.84rem;border-radius:0 10px 10px 0;margin:.9rem 0}
#app-portal .note.trava{border-color:var(--err);background:#FBF2F1}
#app-portal .bar{height:6px;background:var(--line-2);border-radius:6px;overflow:hidden}
#app-portal .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-lt));transition:.7s var(--ease)}
#app-portal /* construtor */
.builder{display:grid;grid-template-columns:1fr 370px;gap:1rem;align-items:start}
@media(max-width:1040px){#app-portal .builder{grid-template-columns:1fr}}
#app-portal .mat{display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:center;padding:.68rem 0;border-top:1px solid var(--line-2)}
#app-portal .mat:first-child{border-top:0}
#app-portal .mat b{display:block;font-size:.91rem;font-weight:600}
#app-portal .mat .mt{font-size:.74rem;color:var(--slate);font-family:"IBM Plex Mono",monospace}
#app-portal .mat .pz{font-family:"IBM Plex Mono",monospace;font-size:.85rem;font-variant-numeric:tabular-nums}
#app-portal .seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;padding:2px;background:var(--paper)}
#app-portal .seg button{border:0;background:transparent;padding:.24rem .6rem;font-size:.68rem;font-family:"IBM Plex Mono",monospace;
  letter-spacing:.07em;text-transform:uppercase;cursor:pointer;color:var(--slate-2);border-radius:999px;transition:.18s var(--ease)}
#app-portal .seg button.on{background:var(--navy);color:#fff}
#app-portal .seg button:disabled{cursor:not-allowed}
#app-portal .panel{position:sticky;top:1rem;background:var(--white);border:1px solid var(--line-2);border-top:3px solid var(--gold);
  border-radius:var(--r);padding:1.3rem;box-shadow:var(--sh-lg)}
#app-portal .tl{display:flex;justify-content:space-between;font-size:.86rem;padding:.22rem 0}
#app-portal .tl .v{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
#app-portal .tl.big{font-size:1.3rem;font-weight:800;letter-spacing:-.03em;border-top:1px dashed var(--line);margin-top:.5rem;padding-top:.6rem}
#app-portal .toast{position:fixed;bottom:5.4rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--navy);
  color:#fff;padding:.7rem 1.3rem;font-size:.85rem;border-radius:999px;opacity:0;pointer-events:none;
  transition:.28s var(--ease);z-index:99}
#app-portal .toast.on{opacity:1;transform:translateX(-50%)}
/* ══════ Administração ══════ */
#app-admin{
  --navy:#0A1A2F;--navy-2:#12294A;--blue:#1B3B66;--blue-soft:#E9EEF5;
  --gold:#C68C33;--gold-dk:#A9752A;--gold-lt:#E0AE5C;--gold-soft:#F7E9D2;
  --cream:#FCF2E7;--paper:#FBFAF6;--white:#fff;
  --line:#E4DCCF;--line-2:#EFE9DE;--slate:#5B6674;--slate-2:#8A94A0;
  --ok:#2F6B4F;--warn:#8A5A12;--err:#9B2C22;
  --r:14px;--ease:cubic-bezier(.2,.75,.25,1);
  --sh:0 1px 2px rgba(10,26,47,.05),0 12px 28px -16px rgba(10,26,47,.16);
  --sh-lg:0 26px 60px -26px rgba(10,26,47,.32);
}
#app-admin *{box-sizing:border-box}
#app-admin{margin:0;background:var(--paper);color:var(--navy);
  font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
#app-admin h1,#app-admin h2,#app-admin h3{font-weight:700;margin:0 0 .35em;line-height:1.15;letter-spacing:-.028em}
#app-admin h1{font-size:1.75rem;font-weight:800}
#app-admin h2{font-size:1.15rem}
#app-admin h3{font-size:.98rem}
#app-admin p{margin:0 0 .8em}
#app-admin .protoflag{background:var(--navy);color:var(--gold-lt);text-align:center;font-family:"IBM Plex Mono",monospace;
  font-size:.66rem;letter-spacing:.14em;padding:.42rem;text-transform:uppercase}
#app-admin .eyebrow{font-family:"IBM Plex Mono",monospace;font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-dk);display:inline-flex;align-items:center;gap:.55rem;margin-bottom:.55rem}
#app-admin .eyebrow::before{content:"";width:20px;height:1px;background:var(--gold)}
#app-admin .muted{color:var(--slate);font-size:.88rem}
#app-admin .hint{font-size:.78rem;color:var(--slate-2)}
#app-admin /* shell */
#app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
#app-admin aside{background:var(--navy);color:#A9B4C1;padding:1.4rem 0;display:flex;flex-direction:column}
#app-admin .brand{padding:0 1.4rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:.7rem;align-items:flex-start}
#app-admin .brand-art svg{width:30px;color:#fff;flex:none}
#app-admin .brand-context b{font-size:.95rem;color:#fff;display:block;letter-spacing:-.02em;line-height:1.3}
#app-admin nav{padding:.9rem 0;flex:1}
#app-admin nav a{display:block;padding:.47rem 1.4rem;font-size:.86rem;text-decoration:none;color:#A9B4C1;
  border-left:2px solid transparent;cursor:pointer;transition:.18s var(--ease)}
#app-admin nav a:hover{color:#fff;background:rgba(255,255,255,.05)}
#app-admin nav a.on{color:#fff;border-color:var(--gold);background:rgba(255,255,255,.07);font-weight:600}
#app-admin nav .grp{font-family:"IBM Plex Mono",monospace;font-size:.57rem;letter-spacing:.18em;text-transform:uppercase;
  color:#69737F;padding:1rem 1.4rem .35rem}
#app-admin .who{padding:1rem 1.4rem 0;border-top:1px solid rgba(255,255,255,.1);font-size:.78rem;color:#7C8794}
#app-admin main{padding:2rem clamp(1.2rem,3vw,2.4rem);overflow-x:auto}
#app-admin .topbar{display:none;position:sticky;top:0;z-index:70;background:rgba(251,250,246,.94);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-2);padding:.7rem clamp(1rem,4vw,1.4rem);align-items:center;gap:.8rem;
  margin:-2rem -1.2rem 1.2rem}
#app-admin .burger{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:.5rem .9rem;
  font-size:.8rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem}
#app-admin .burger i{display:block;width:16px;height:10px;border-top:1.5px solid var(--navy);border-bottom:1.5px solid var(--navy);position:relative}
#app-admin .burger i::after{content:"";position:absolute;top:3.5px;left:0;right:0;height:1.5px;background:var(--navy)}
#app-admin #veu{position:fixed;inset:0;background:rgba(10,26,47,.5);backdrop-filter:blur(3px);z-index:88;
  opacity:0;pointer-events:none;transition:.35s var(--ease)}
#app-admin #veu.on{opacity:1;pointer-events:auto}
@media(max-width:960px){#app-admin #app{grid-template-columns:1fr}
#app-admin .topbar{display:flex}
#app-admin aside{position:fixed;top:0;left:0;bottom:0;width:min(272px,84vw);z-index:90;
    transform:translateX(-102%);transition:transform .42s var(--ease);box-shadow:30px 0 80px -30px rgba(10,26,47,.6)}
#app-admin aside.open{transform:none}}
#app-admin .view{display:none}
#app-admin .view.on{display:block;animation:adm-pin .45s var(--ease)}
@keyframes adm-pin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#app-admin .topline{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:5.4rem}
#app-admin .topline .btns{margin-left:auto;display:flex;gap:.5rem;flex-wrap:wrap}
#app-admin /* blocos */
.card{background:var(--white);border:1px solid var(--line-2);border-radius:var(--r);padding:1.3rem;margin-bottom:1rem;box-shadow:var(--sh)}
#app-admin .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:5.4rem}
#app-admin .kpi{background:var(--white);border:1px solid var(--line-2);border-radius:var(--r);padding:1.1rem 1.25rem;box-shadow:var(--sh)}
#app-admin .kpi span{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);display:block;margin-bottom:.32rem}
#app-admin .kpi b{font-size:1.7rem;font-weight:800;line-height:1;display:block;letter-spacing:-.04em;color:var(--blue);font-variant-numeric:tabular-nums}
#app-admin .kpi i{font-style:normal;font-size:.74rem;color:var(--slate)}
#app-admin .tw{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line-2);background:var(--white);box-shadow:var(--sh);-webkit-overflow-scrolling:touch}
#app-admin .tw::-webkit-scrollbar{height:8px}
#app-admin .tw::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
#app-admin .tw+.rolar{display:none}
@media(max-width:1240px){#app-admin .tw+.rolar{display:block;margin:.5rem 0 1rem}}
#app-admin table{width:100%;min-width:1200px;border-collapse:collapse;background:var(--white);font-size:.86rem}
#app-admin th{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:var(--slate);
  text-align:left;padding:.72rem .8rem;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:500;background:var(--cream)}
#app-admin td{padding:.68rem .8rem;border-bottom:1px solid var(--line-2);vertical-align:top}
#app-admin tbody tr:hover td{background:var(--paper)}
#app-admin .mono{font-family:"IBM Plex Mono",monospace;font-size:.82rem;font-variant-numeric:tabular-nums}
#app-admin .badge{display:inline-flex;align-items:center;gap:.3rem;font-family:"IBM Plex Mono",monospace;font-size:.61rem;
  letter-spacing:.1em;text-transform:uppercase;padding:.17rem .55rem;border:1px solid currentColor;border-radius:999px;white-space:nowrap}
#app-admin .b-ok{color:var(--ok)}
#app-admin .b-warn{color:var(--warn)}
#app-admin .b-err{color:var(--err)}
#app-admin .b-mut{color:var(--slate-2)}
#app-admin .b-act{color:var(--gold-dk)}
#app-admin .btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:inherit;font-size:.83rem;
  font-weight:600;padding:.54rem 1.1rem;border:1px solid transparent;background:var(--gold);color:#fff;
  border-radius:999px;cursor:pointer;transition:.2s var(--ease);text-decoration:none}
#app-admin .btn:hover{background:var(--gold-dk);transform:translateY(-1px);box-shadow:0 10px 22px -12px rgba(198,140,51,.7)}
#app-admin .btn.gh{background:transparent;color:var(--navy);border-color:var(--line)}
#app-admin .btn.gh:hover{background:var(--white);border-color:var(--slate-2);box-shadow:var(--sh)}
#app-admin .btn.sm{padding:.32rem .75rem;font-size:.75rem}
#app-admin .btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
#app-admin :focus-visible{outline:2px solid var(--gold);outline-offset:3px}
#app-admin label{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--slate);display:block;margin-bottom:.26rem}
#app-admin input,#app-admin select,#app-admin textarea{width:100%;font-family:inherit;font-size:.89rem;padding:.55rem .7rem;border:1px solid var(--line);
  background:var(--paper);border-radius:10px;color:var(--navy)}
#app-admin input:focus,#app-admin select:focus,#app-admin textarea:focus{border-color:var(--gold);background:var(--white);outline:none}
#app-admin textarea{min-height:72px}
#app-admin .row{display:grid;gap:.9rem;margin-bottom:.9rem}
#app-admin .r2{grid-template-columns:repeat(2,1fr)}
#app-admin .r3{grid-template-columns:repeat(3,1fr)}
#app-admin .r4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){#app-admin .r2,#app-admin .r3,#app-admin .r4{grid-template-columns:1fr}}
#app-admin .filters{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
#app-admin .filters>div{min-width:158px}
#app-admin .fs{border:1px solid var(--line-2);border-radius:var(--r);padding:1.2rem;margin-bottom:1rem;background:var(--white);box-shadow:var(--sh)}
#app-admin .fs legend{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--gold-dk);padding:0 .45rem}
#app-admin .material-details{padding:0;margin-bottom:1rem;overflow:hidden}
#app-admin .material-details>summary{cursor:pointer;list-style:none;font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dk);padding:1.2rem}
#app-admin .material-details>summary::-webkit-details-marker{display:none}
#app-admin .material-details>summary::after{content:'+';float:right;font-size:1rem;line-height:.7}
#app-admin .material-details[open]>summary{border-bottom:1px solid var(--line-2);margin-bottom:1.2rem}
#app-admin .material-details[open]>summary::after{content:'−'}
#app-admin .material-details>*:not(summary){margin-left:1.2rem;margin-right:1.2rem}
#app-admin .material-details>p:last-child{margin-bottom:1.2rem}
#app-admin .code{font-family:"IBM Plex Mono",monospace;letter-spacing:.14em;background:var(--gold-soft);
  border:1px dashed var(--gold);color:var(--gold-dk);padding:.11rem .48rem;border-radius:6px;font-size:.78rem;white-space:nowrap}
#app-admin .note{background:var(--cream);border-left:2px solid var(--gold);padding:.8rem .95rem;font-size:.84rem;border-radius:0 10px 10px 0;margin:.9rem 0}
#app-admin .note.ruim{border-color:var(--err);background:#FBF2F1}
#app-admin /* kanban */
.kanban{display:grid;grid-template-columns:repeat(6,minmax(200px,1fr));gap:.8rem;overflow-x:auto;padding-bottom:.6rem}
#app-admin .col{background:var(--cream);border-radius:var(--r);padding:.85rem;min-height:230px}
#app-admin .col h3{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--slate);margin-bottom:.7rem}
#app-admin .lead{background:var(--white);border:1px solid var(--line-2);border-radius:10px;padding:.75rem;margin-bottom:.55rem;
  font-size:.82rem;cursor:grab;box-shadow:var(--sh)}
#app-admin .lead b{display:block;font-size:.9rem;font-weight:700;letter-spacing:-.02em}
#app-admin .lead span{color:var(--slate);font-size:.75rem}
#app-admin /* marca */
.drop{border:1.5px dashed var(--line);border-radius:var(--r);padding:1.6rem;text-align:center;background:var(--paper);
  cursor:pointer;transition:.22s var(--ease)}
#app-admin .drop:hover{border-color:var(--gold);background:var(--white)}
#app-admin .drop.tem{border-style:solid;border-color:var(--line-2);background:var(--white)}
#app-admin .drop .pv{max-height:88px;max-width:100%;margin:0 auto .8rem;display:block;object-fit:contain}
#app-admin .drop .pv.mini{max-height:32px}
#app-admin .marca-logo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
#app-admin .marca-logo-card{min-width:0;display:flex;flex-direction:column;gap:.5rem}
#app-admin .marca-logo-card>b{font-size:.83rem;color:var(--navy)}
#app-admin .marca-logo-preview{height:116px;display:flex;align-items:center;justify-content:center;padding:.9rem;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;overflow:hidden}
#app-admin .marca-logo-preview.dark{background:var(--navy);border-color:var(--navy)}
#app-admin .marca-logo-preview .pv{display:block;max-width:100%;max-height:80px;object-fit:contain}
#app-admin .marca-logo-status{font-size:.72rem;color:var(--slate);min-height:1.2rem}
#app-admin .marca-logo-card .btn{width:100%;margin-top:auto}
@media(max-width:660px){#app-admin .marca-logo-grid{grid-template-columns:1fr}}
#app-admin .swatch{display:flex;align-items:center;gap:.7rem}
#app-admin .swatch input[type=color]{width:46px;height:38px;padding:2px;border-radius:10px;cursor:pointer}
#app-admin .previa{border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--white);box-shadow:var(--sh)}
#app-admin .previa .pbar{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;border-bottom:1px solid var(--line-2)}
#app-admin .previa .aba{display:flex;align-items:center;gap:.45rem;background:var(--paper);border:1px solid var(--line-2);
  border-radius:8px 8px 0 0;padding:.3rem .7rem;font-size:.72rem;color:var(--slate);max-width:220px}
#app-admin .previa .aba img,#app-admin .previa .aba svg{width:14px;height:14px;object-fit:contain;flex:none}
#app-admin .previa .corpo{padding:1.4rem 1rem;text-align:center}
#app-admin .previa .corpo img,#app-admin .previa .corpo svg{max-height:44px;margin-bottom:.8rem}
#app-admin .toast{position:fixed;bottom:5.4rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--navy);
  color:#fff;padding:.7rem 1.3rem;font-size:.85rem;border-radius:999px;opacity:0;pointer-events:none;
  transition:.28s var(--ease);z-index:130}
#app-admin .toast.on{opacity:1;transform:translateX(-50%)}
/* balcão de retirada */
#app-portal .balcao{margin-bottom:1.4rem}
#app-portal .bl-busca{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem}
#app-portal .bl-busca input{flex:1 1 220px;max-width:320px;font-family:"IBM Plex Mono",monospace;
  font-size:1.15rem;letter-spacing:.12em;text-transform:uppercase}
#app-portal #camera{width:100%;max-width:340px;border-radius:14px;margin-top:1rem;background:#000}
#app-portal .achado{margin-top:1.3rem;border:1px solid var(--line);border-radius:14px;padding:1.2rem;background:var(--white)}
#app-portal .achado.ok{border-color:var(--ok);background:#F2FAF4}
#app-portal .achado.erro{border-color:var(--err);background:#FDF4F4}
#app-portal .achado h3{margin:.2rem 0 .4rem;font-size:1.25rem}
#app-portal .achado .linhas{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;margin:1rem 0}
#app-portal .achado .linhas div span{display:block;font-family:"IBM Plex Mono",monospace;font-size:.58rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
#app-portal .achado .linhas div b{font-size:.98rem}
#app-portal .conf{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1rem 0}
@media(max-width:620px){#app-portal .conf{grid-template-columns:1fr}}
#app-portal #doc{position:fixed;inset:0;z-index:120;background:rgba(10,26,47,.55);backdrop-filter:blur(4px);
  display:none;overflow-y:auto;padding:clamp(1rem,4vw,3rem)}
#app-portal #doc.on{display:block}
#app-portal #docCorpo{max-width:760px;margin:0 auto;background:#fff;border-radius:16px;padding:clamp(1.4rem,4vw,2.2rem);
  box-shadow:0 40px 90px -30px rgba(10,26,47,.6)}
#app-portal .docTopo{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;
  border-bottom:2px solid var(--navy);padding-bottom:1rem;margin-bottom:1.2rem}
#app-portal .docSelo{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dk)}
#app-portal .docGrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.2rem}
#app-portal .docTab{width:100%;border-collapse:collapse;font-size:.84rem}
#app-portal .docTab th{font-family:"IBM Plex Mono",monospace;font-size:.58rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--slate);text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--line)}
#app-portal .docTab td{padding:.5rem .4rem;border-bottom:1px solid var(--line-2)}
#app-portal .docAcoes{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.6rem}
@media(max-width:620px){#app-portal .docGrid{grid-template-columns:1fr}}
@media print{#app-portal>*:not(#doc){display:none!important}
#app-portal #doc{position:static;background:#fff;padding:0}
#app-portal #docCorpo{box-shadow:none;max-width:none}
#app-portal .docAcoes{display:none}}
/* ══ porta de acesso da administração ══ */
#app-admin #portaAdm{position:fixed;inset:0;z-index:400;background:#0A1A2F;display:none;
  align-items:center;justify-content:center;padding:1.5rem;overflow-y:auto}
#app-admin #portaAdm.on{display:flex}
#app-admin .pa-caixa{width:100%;max-width:400px;background:#fff;border-radius:20px;
  padding:clamp(1.8rem,4vw,2.6rem);box-shadow:0 40px 90px -30px rgba(0,0,0,.7);text-align:center}
#app-admin .pa-mk{width:50px;color:var(--navy);margin-bottom:1rem}
#app-admin .pa-selo{font-family:"IBM Plex Mono",monospace;font-size:.58rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-dk);margin-bottom:.6rem}
#app-admin .pa-caixa h1{font-size:1.7rem;margin:0 0 .3rem;letter-spacing:-.03em}
#app-admin .pa-sub{color:var(--slate);font-size:.88rem;margin:0 0 1.6rem}
#app-admin .pa-campo{text-align:left;margin-bottom:.9rem}
#app-admin .pa-campo label{display:block;font-family:"IBM Plex Mono",monospace;font-size:.58rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-bottom:.3rem}
#app-admin .pa-campo input{width:100%;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:.95rem;background:var(--paper);color:var(--navy)}
#app-admin .pa-campo input:focus{outline:none;border-color:var(--gold);background:#fff}
#app-admin .pa-btn{width:100%;margin-top:.6rem;padding:.85rem;border:0;border-radius:999px;
  background:var(--navy);color:#fff;font:inherit;font-weight:700;font-size:.95rem;cursor:pointer;transition:.2s}
#app-admin .pa-btn:hover{background:#16304f}
#app-admin .pa-btn:disabled{opacity:.5;cursor:not-allowed}
#app-admin .pa-erro{color:var(--err);font-size:.84rem;min-height:1.2rem;margin:.5rem 0 0;text-align:left}
#app-admin .pa-forca{font-size:.78rem;margin:.2rem 0 0;text-align:left;min-height:1.1rem}
#app-admin .pa-nota{font-size:.76rem;color:var(--slate);margin:1rem 0 0}
#app-admin .pa-demo{margin-top:1.4rem;border-top:1px dashed var(--line);padding-top:1rem;text-align:left}
#app-admin .pa-demo .tit{font-family:"IBM Plex Mono",monospace;font-size:.56rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dk);margin-bottom:.6rem}
#app-admin .pa-demo button{display:flex;width:100%;gap:.6rem;align-items:baseline;text-align:left;
  background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;
  margin-bottom:.4rem;font:inherit;cursor:pointer;transition:.18s}
#app-admin .pa-demo button:hover{border-color:var(--gold);background:var(--gold-soft)}
#app-admin .pa-demo button b{font-size:.8rem;color:var(--navy)}
#app-admin .pa-demo button span{font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--slate);
  margin-left:auto;white-space:nowrap}
#app-admin .pa-demo .aviso{font-size:.72rem;color:var(--slate);margin:.6rem 0 0;line-height:1.5}
#app-admin .pa-rodape{font-family:"IBM Plex Mono",monospace;font-size:.56rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--line);margin:1.6rem 0 0}
#app-admin .quemSou{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;margin-top:auto;
  border-top:1px solid rgba(255,255,255,.12);font-size:.8rem;color:#B9C3CF}
#app-admin .quemSou b{display:block;color:#fff;font-size:.86rem}
#app-admin .quemSou button{margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.25);
  color:#E0AE5C;border-radius:999px;padding:.3rem .7rem;font:inherit;font-size:.74rem;cursor:pointer}
#app-admin #doc{position:fixed;inset:0;z-index:120;background:rgba(10,26,47,.55);backdrop-filter:blur(4px);
  display:none;overflow-y:auto;padding:clamp(1rem,4vw,3rem)}
#app-admin #doc.on{display:block}
#app-admin #docCorpo{max-width:760px;margin:0 auto;background:#fff;border-radius:16px;padding:clamp(1.4rem,4vw,2.2rem);
  box-shadow:0 40px 90px -30px rgba(10,26,47,.6)}
#app-admin .docTopo{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;border-bottom:2px solid var(--navy);padding-bottom:1rem;margin-bottom:1.2rem}
#app-admin .docSelo{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dk)}
#app-admin .docGrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.2rem}
@media(max-width:620px){#app-admin .docGrid{grid-template-columns:1fr}}
@media print{#app-admin>*:not(#doc){display:none!important}
#app-admin #doc{position:static;background:#fff;padding:0}
#app-admin #docCorpo{box-shadow:none;max-width:none}
#app-admin #doc button{display:none}}
#app-admin .rodapeAdm{border-top:1px solid var(--line-2);margin-top:2rem;padding-top:1.1rem;display:flex;gap:1rem;
  flex-wrap:wrap;align-items:center;font-size:.79rem;color:var(--slate-2)}
#app-admin .rodapeAdm a{color:var(--gold-dk);text-decoration:none;font-weight:600}

/* senhas: botão compartilhado entre administração e portal */
.password-field{display:block;position:relative}
.password-field>input{padding-right:3rem!important}
.password-toggle{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);width:2.2rem;height:2.2rem;
  border:0;border-radius:999px;background:transparent;color:var(--slate,#5B6674);cursor:pointer;font-size:1rem}
.password-toggle:hover{background:rgba(10,26,47,.07)}
.password-toggle:focus-visible{outline:2px solid var(--gold,#C68C33);outline-offset:1px}
.cf-turnstile{min-height:65px}

/* Shared, independently scrollable navigation for both authenticated panels. */
#app-portal #schoolDelegatedBar{position:sticky;top:0;z-index:85;flex-wrap:wrap}
#app-portal #schoolDelegatedExit{color:#fff;background:#203b58;border:1px solid #91a4b9}
#app-portal #schoolDelegatedExit:hover,#app-portal #schoolDelegatedExit:focus-visible{background:#fff;color:#0a1a2f}
:is(#app-admin,#app-portal) aside{position:sticky;top:0;height:100dvh;align-self:start;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(1rem,env(safe-area-inset-bottom))}
:is(#app-admin,#app-portal) aside nav{flex:1 0 auto}
:is(#app-admin,#app-portal) .panel-tools{display:flex;justify-content:flex-end;padding:0 1rem .6rem}
:is(#app-admin,#app-portal) .panel-shortcuts{display:flex;flex-wrap:wrap;gap:.45rem;padding:.8rem 1.2rem}
:is(#app-admin,#app-portal) .panel-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;border:1px solid #52677c;border-radius:8px;background:transparent;color:#fff;cursor:pointer;text-decoration:none}
:is(#app-admin,#app-portal) .panel-icon:hover,:is(#app-admin,#app-portal) .panel-icon:focus-visible{background:#203b58;outline:2px solid var(--gold);outline-offset:2px}
:is(#app-admin,#app-portal) .panel-icon svg{width:20px;height:20px}
:is(#app-admin,#app-portal) nav a[data-icon-ready]{display:flex;gap:.65rem;align-items:center}
:is(#app-admin,#app-portal) nav a svg{width:19px;height:19px;flex:none}
@media(min-width:961px){
:is(#app-admin,#app-portal).panel-collapsed #app{grid-template-columns:76px minmax(0,1fr)}
:is(#app-admin,#app-portal).panel-collapsed .brand,:is(#app-admin,#app-portal).panel-collapsed .panel-nav-label,:is(#app-admin,#app-portal).panel-collapsed nav .grp,:is(#app-admin,#app-portal).panel-collapsed .who{display:none}
:is(#app-admin,#app-portal).panel-collapsed nav a{justify-content:center;padding:.7rem}
:is(#app-admin,#app-portal).panel-collapsed .panel-shortcuts{justify-content:center;padding:.5rem}
:is(#app-admin,#app-portal).panel-collapsed .panel-tools{justify-content:center;padding:0 0 .6rem}
#app-portal:has(#schoolDelegatedBar[style*="flex"]) aside{top:var(--delegated-height,0px);height:calc(100dvh - var(--delegated-height,0px))}
}
@media(max-width:960px){:is(#app-admin,#app-portal) aside{position:fixed;top:0;bottom:0;height:100dvh}:is(#app-admin,#app-portal) .panel-collapse{display:none}}

.delivery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;align-items:end}.delivery-field{display:flex;flex-direction:column;gap:.4rem}.delivery-zone{margin-bottom:1rem}.delivery-field input[type=checkbox]{width:20px;height:20px}.delivery-settings .btn{margin:.3rem}.delivery-settings .box{margin:1rem 0}

.panel-compact-exit{display:none!important}@media(min-width:961px){:is(#app-admin,#app-portal).panel-collapsed .who,:is(#app-admin,#app-portal).panel-collapsed .quemSou{display:none!important}:is(#app-admin,#app-portal).panel-collapsed .panel-compact-exit{display:inline-flex!important}}

/* Resumos de pedido: leitura vertical sem tabela larga no modal e na área da família. */
#app-admin .pedido-itens-admin{margin:1.2rem 0;padding:1rem;border:1px solid var(--line-2);border-radius:14px;background:var(--paper)}
#app-admin .pedido-itens-admin h3{margin:.1rem 0 .75rem}
#app-admin .pedido-item-admin{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.72rem 0;border-top:1px solid var(--line-2)}
#app-admin .pedido-item-admin>div{min-width:0}
#app-admin .pedido-item-admin b{display:block;overflow-wrap:anywhere}
#app-admin .pedido-item-admin span{display:block;margin-top:.18rem;color:var(--slate);font-size:.82rem}
#app-admin .pedido-item-admin strong{white-space:nowrap;font-family:"IBM Plex Mono",monospace;font-size:.82rem}
#app-admin .pedido-resumo-admin{margin-top:.7rem;padding-top:.65rem;border-top:2px solid var(--line)}
#app-admin .pedido-resumo-admin>div{display:flex;justify-content:space-between;gap:1rem;padding:.28rem 0;font-size:.88rem}
#app-admin .pedido-resumo-admin .desconto{color:var(--ok)}
#app-admin .pedido-resumo-admin .total{margin-top:.35rem;padding-top:.6rem;border-top:1px solid var(--line);font-size:1rem;color:var(--navy)}
#app-admin #v-cupom-form select[multiple]{min-height:9.5rem;padding:.45rem}
#app-admin #v-cupom-form select[multiple] option{padding:.38rem .45rem;border-radius:5px}
#app-admin #v-cupom-form .check{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin:.25rem 0 1rem}
#app-admin #v-cupom-form .check label{display:flex;align-items:center;gap:.45rem;margin:0}
#app-admin #v-cupom-form .check input[type=checkbox]{width:auto;margin:0}
#app-loja .pedido-itens-cliente{margin:.8rem 0;padding:.85rem 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
#app-loja .pedido-item-cliente{display:flex;justify-content:space-between;gap:1rem;padding:.32rem 0;font-size:.88rem}
#app-loja .pedido-item-cliente span{min-width:0;overflow-wrap:anywhere}
#app-loja .pedido-item-cliente strong{white-space:nowrap}
#app-loja .pedido-item-cliente.desconto{color:var(--ok)}
@media(max-width:540px){
  #app-admin .pedido-item-admin{align-items:flex-start}
  #app-admin .pedido-item-admin strong{white-space:normal;text-align:right}
}

/* Biblioteca de mídia e ajustes locais de materiais */
#app-admin [hidden]{display:none!important}
#app-admin .material-filter-actions{align-self:end;display:flex;align-items:center;min-height:38px}
#app-admin .image-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}
#app-admin #v-midia .topline{margin-bottom:1.6rem}
#app-admin .media-toolbar{display:flex;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
#app-admin .media-toolbar>div{flex:1;min-width:180px}
#app-admin .media-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:1.4rem;align-items:start}
#app-admin .media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.85rem}
#app-admin .media-item{display:flex;flex-direction:column;gap:.5rem;padding:.65rem;background:var(--white);color:var(--navy);border:1px solid var(--line-2);border-radius:12px;text-align:left;cursor:pointer;min-width:0;font:inherit}
#app-admin .media-item.selected{outline:2px solid var(--gold);border-color:var(--gold)}
#app-admin .media-item img{width:100%;height:150px;object-fit:contain;background:var(--cream);border-radius:7px}
#app-admin .media-item span{font-size:.84rem;font-weight:600;overflow-wrap:anywhere}
#app-admin .media-item small{font-size:.72rem;color:var(--slate)}
#app-admin .media-details{padding:1rem;border:1px solid var(--line-2);background:var(--white);border-radius:12px;overflow-wrap:anywhere}
#app-admin .media-large-preview{max-width:100%;width:100%;height:220px;object-fit:contain;background:var(--cream);border-radius:8px}
#app-admin .media-details h3{font-size:1rem;margin:.7rem 0}
#app-admin .media-details h4{font-size:.84rem;margin:1rem 0 .4rem}
#app-admin .media-details ul{padding-left:1.1rem;font-size:.8rem}
#app-admin .media-delete{margin-top:1rem;color:var(--err)}
#app-admin .media-dialog{position:fixed;inset:0;margin:0;padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;background:var(--paper);color:var(--navy)}
#app-admin .media-dialog::backdrop{background:#0a1a2fcc}
#app-admin .media-shell{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}
#app-admin .media-header{padding:1.2rem 1.8rem;border-bottom:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--white)}
#app-admin .media-header h2{font-size:1.35rem;margin:.15rem 0 0}
#app-admin .media-tabs{display:flex;gap:.5rem;padding:.8rem 1.8rem;border-bottom:1px solid var(--line-2)}
#app-admin .media-tabs button{border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem;background:var(--white);color:var(--navy);font:inherit;cursor:pointer}
#app-admin .media-tabs button[aria-selected=true]{background:var(--navy);color:#fff}
#app-admin .media-scroll{overflow-y:auto;overscroll-behavior:contain;padding:1.3rem 1.8rem}
#app-admin .media-upload{max-width:700px;margin:2rem auto;padding:2rem;border:1px dashed var(--gold);border-radius:16px;background:var(--white)}
#app-admin .media-upload progress{width:100%;height:16px;margin-top:1rem}
#app-admin .media-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.8rem;border-top:1px solid var(--line-2);background:var(--white)}
#app-admin .media-footer p{margin:0;font-size:.85rem}
#app-admin .media-footer .btns{display:flex;gap:.5rem;flex-shrink:0}
body.media-is-open{overflow:hidden}
#app-admin .media-tile{display:flex;flex-direction:column;min-width:0}
#app-admin .media-tile .media-item{width:100%;flex:1}
#app-admin .media-usage{font:inherit;font-size:.76rem;color:var(--navy);background:var(--cream);border:1px solid var(--line-2);border-radius:6px;padding:.6rem;cursor:pointer}
#app-admin .media-pdf-icon{display:grid;place-items:center;height:150px;width:100%;background:var(--cream);color:var(--navy);font-size:2rem;letter-spacing:.15em;border-radius:8px}
#app-admin .media-queue{padding-left:1.4rem;max-height:40vh;overflow:auto}
#app-admin .media-job{padding:.7rem;border-bottom:1px solid var(--line-2);overflow-wrap:anywhere}
#app-admin .media-job strong,#app-admin .media-job span,#app-admin .media-job small{display:block}
#app-admin .media-job.failed{color:var(--err)}
#app-admin .media-upload .btns{display:flex;gap:.6rem;flex-wrap:wrap}
#app-admin .media-usage-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--paper);color:var(--navy);overflow:auto}
#app-admin .media-usage-list{list-style:none;padding:0;max-width:850px}
#app-admin .media-usage-list li{border:1px solid var(--line-2);border-radius:10px;background:var(--white);padding:1rem;margin-bottom:.8rem;overflow-wrap:anywhere}
@media(max-width:700px){#app-admin .media-layout{grid-template-columns:1fr}#app-admin .media-details{order:2}#app-admin .media-header,#app-admin .media-footer{padding:.9rem}#app-admin .media-tabs{padding:.7rem .9rem}#app-admin .media-scroll{padding:1rem .9rem}#app-admin .media-footer{flex-wrap:wrap}#app-admin .media-footer .btns{margin-left:auto}#app-admin .media-upload{padding:1rem;margin:.5rem auto}#app-admin .media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Solicitação de amostras e configuração do formulário. */
body.sample-modal-open{overflow:hidden}
.seo-sitemap-preview{width:100%;font: .8rem/1.5 monospace;padding:.8rem;margin:.8rem 0;resize:vertical}
.sample-cta{margin-top:1.2rem}.sample-cta[hidden]{display:none}
.sample-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;padding:1.5rem;background:var(--off,#FBFAF6);color:var(--ink,#0A1A2F);overflow:auto}
.sample-dialog::backdrop{background:#0a1a2fcc}.sample-dialog-body{max-width:720px;margin:0 auto;padding:1rem 0 3rem}.sample-dialog-body>button{float:right}
.sample-dialog fieldset{border:0;padding:0;margin:1rem 0;min-width:0}.sample-label{display:flex;flex-direction:column;gap:.4rem;margin:.8rem 0;min-width:0}
.sample-label input:not([type=checkbox]),.sample-label select,.sample-label textarea{width:100%;min-width:0;padding:.7rem;border:1px solid #d8cbb8;border-radius:8px;background:white;color:#0A1A2F;font:inherit;box-sizing:border-box}
.sample-label input[type=checkbox]{align-self:flex-start;width:1.2rem;height:1.2rem}.sample-label textarea{min-height:90px}
.sample-settings-form{max-width:900px}.sample-settings-form>button{margin:.5rem .5rem .5rem 0}.sample-field{border:1px solid #d8cbb8;border-radius:12px;padding:1rem;margin:1rem 0;min-width:0}.sample-field-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.sample-dialog [hidden],.sample-settings-form [hidden]{display:none!important}
@media(max-width:600px){.sample-dialog{padding:1rem}.sample-dialog-body h2{font-size:1.7rem;clear:both;padding-top:1rem}.sample-field{padding:.75rem}}
