:root{--g:#2F5D50;--g2:#DCE9E3;--bg:#F4F7F5;--tx:#1d2b26;--mut:#5d6b66;--ac:#E8A33D;--bad:#B3261E;--ok:#1B7F4B;--warn:#9C5700;--card:#fff;--bd:#d6dfdb}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.hidden{display:none!important}
header{position:sticky;top:0;z-index:20;background:var(--g);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:8px 14px;padding-top:max(8px,env(safe-area-inset-top))}
.brand{display:flex;gap:8px;align-items:center;font-size:16px}.brand img{border-radius:6px;background:#fff}
.who{font-size:12px;display:flex;gap:6px;align-items:center}
.badge{padding:2px 8px;border-radius:99px;font-size:11px;background:#fff3;color:#fff}
.badge.ok{background:#1B7F4B}.badge.bad{background:#B3261E}.badge.warn{background:#9C5700}
nav{display:flex;gap:2px;overflow-x:auto;background:#fff;border-bottom:1px solid var(--bd);position:sticky;top:46px;z-index:15;padding:0 6px}
nav button{border:0;background:none;padding:11px 12px;font-size:14px;color:var(--mut);white-space:nowrap;border-bottom:3px solid transparent;cursor:pointer}
nav button.on{color:var(--g);border-bottom-color:var(--g);font-weight:600}
main{max-width:1250px;margin:0 auto;padding:14px 14px 80px}
h2{margin:6px 0 12px;font-size:20px;color:var(--g)}h3{margin:16px 0 8px;font-size:16px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px;margin-bottom:14px}
.grid{display:grid;gap:12px}.g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.big{font-size:26px;font-weight:700;color:var(--g)}.mut{color:var(--mut);font-size:13px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tab{border:1px solid var(--bd);background:#fff;border-radius:99px;padding:6px 14px;cursor:pointer;font-size:14px}
.tab.on{background:var(--g);color:#fff;border-color:var(--g)}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid var(--bd);border-radius:8px;background:#fff;color:var(--tx);max-width:100%}
textarea{width:100%;min-height:110px}
input:disabled,select:disabled,textarea:disabled{background:#f1f3f2}
.btn{background:var(--g);color:#fff;border:0;border-radius:8px;padding:8px 14px;cursor:pointer;font:inherit;font-weight:600}
.btn.sec{background:#fff;color:var(--g);border:1px solid var(--g)}.btn.red{background:var(--bad)}.btn.sm{padding:4px 9px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed}
table{border-collapse:collapse;width:100%;background:#fff}
th,td{border:1px solid var(--bd);padding:6px 8px;text-align:left;vertical-align:top}
th{background:var(--g2);font-size:13px}
td.n,th.n{text-align:right}td.c,th.c{text-align:center}
.scroll{overflow-x:auto}
.cell{cursor:pointer;min-width:150px}.cell:hover{background:#f3faf6}
.cell .t{font-size:13px}.cell .v{font-weight:700;color:var(--g);margin-top:3px}
.tot td{background:#f2f2f2;font-weight:700}
.sem{background:var(--g);color:#fff;padding:6px 10px;border-radius:8px 8px 0 0;font-weight:700;margin-top:14px}
.pill{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px}
.pill.ok{background:#C6EFCE;color:#006100}.pill.warn{background:#FFEB9C;color:#9C5700}.pill.bad{background:#FFC7CE;color:#9C0006}
.erro{color:var(--bad);margin-top:8px;min-height:20px}
.login{position:fixed;inset:0;background:var(--g);display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:#fff;border-radius:16px;padding:28px;max-width:340px;width:100%;text-align:center;display:grid;gap:10px}
.login-card img{margin:0 auto;border-radius:14px}.login-card h1{margin:0;color:var(--g)}.login-card p{margin:0;color:var(--mut)}
.overlay{position:fixed;inset:0;background:#fff8;z-index:60;display:flex;align-items:center;justify-content:center}
.spin{width:42px;height:42px;border:4px solid var(--g2);border-top-color:var(--g);border-radius:50%;animation:s 0.8s linear infinite}@keyframes s{to{transform:rotate(360deg)}}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:10px;z-index:80;max-width:90%}
.toast.bad{background:var(--bad)}
.modal{position:fixed;inset:0;background:#0007;z-index:70;display:flex;align-items:center;justify-content:center;padding:14px}
.modal-box{background:#fff;border-radius:14px;padding:18px;max-width:560px;width:100%;max-height:90vh;overflow:auto}
.slot{display:grid;grid-template-columns:24px 1fr;gap:6px;align-items:center;margin-bottom:6px}.slot select{width:100%}
.ficha{background:#fff;border:1px solid var(--bd);padding:16px;border-radius:12px}
.ficha h1{font-size:17px;text-align:center;margin:0 0 2px}.ficha .sub{text-align:center;color:var(--mut);margin-bottom:10px}
.ficha table{font-size:13px}.ficha .modo{white-space:pre-wrap}
#print{display:none}
@media print{
  body>*:not(#print){display:none!important}
  #print{display:block;color:#000;font-size:11px}
  #print table{font-size:10px}#print table:not(.cardp) th{background:#ddd!important}
  .quebra{page-break-after:always}
  @page{margin:12mm}
}
@media(max-width:640px){main{padding:10px 10px 80px}.big{font-size:22px}}

.hero{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--bd);border-radius:14px;padding:12px 16px;margin-bottom:14px;flex-wrap:wrap}
.hero img{height:84px;max-width:60%;object-fit:contain}
.tiles{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}
.tile{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;background:#fff;border:1px solid var(--bd);border-radius:14px;padding:14px;cursor:pointer;font:inherit;color:var(--tx);min-height:110px}
.tile:hover{border-color:var(--g);background:#f3faf6}.tile .ic{font-size:28px}.tile b{font-size:16px;color:var(--g)}
.big-tile{min-height:150px}.big-tile .ic{font-size:40px}
.crumbs{margin:2px 0 8px;font-size:13px;color:var(--mut)}.crumbs a{color:var(--g)}
.mesrow{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--bd);flex-wrap:wrap}.mesrow:last-child{border:0}
.mesnome{min-width:130px;font-weight:700;color:var(--g)}
.pedbtn.novo{border-style:dashed}
details.esc summary{cursor:pointer}details.esc{padding:10px 14px}
tr.vazio td{color:#8a9691}input.q{text-align:right}
.imgslot{border:1px solid var(--bd);border-radius:10px;padding:10px;min-width:200px;max-width:340px}.imgslot .prev{background:#f6f6f6;padding:6px;margin:6px 0;text-align:center;min-height:60px}.imgslot img{max-width:100%;max-height:120px}
.stack{display:grid;gap:6px;max-width:460px}
#print .pagina img{max-width:100%}#print{font-family:Arial}
.ghead{background:#e6efe9;border-top:2px solid var(--g)}
.lk{color:var(--g);text-decoration:none}.lk:hover{text-decoration:underline}
.chip{display:inline-flex;gap:4px;align-items:center;border:1px solid var(--bd);border-radius:99px;padding:3px 10px;background:#fff}
.card.nuc{padding:10px;margin-bottom:8px;background:#fafcfb}
.escT input,.escT select{padding:4px 6px;font-size:13px;max-width:150px}
#navtog{background:#fff3;border:0;color:#fff;border-radius:8px;padding:4px 10px;cursor:pointer;font-size:14px}
nav.recolhido{display:none}

#voltarBtn{background:#fff3;border:0;color:#fff;border-radius:8px;width:34px;height:30px;font-size:20px;line-height:1;cursor:pointer}
:focus-visible{outline:3px solid var(--ac);outline-offset:1px}
.nuchead{background:#2F9E6B;color:#fff;padding:9px 12px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px}
tr.nuchead{display:table-row}tr.nuchead td{background:#2F9E6B;color:#fff;padding:9px 12px;border:0;font-size:15px}
tr.nuchead .btn{margin-left:8px}
.nuchead .qt{font-weight:400;opacity:.95}
.nuchead .seta::before{content:'▾';display:inline-block;width:14px}
.nucgrp.fechado .nuchead .seta::before{content:'▸'}
.nucgrp{margin-bottom:14px}
.nucgrp .nucbody{margin-top:8px}
.nucgrp.fechado .nucbody,.nucgrp.fechado .nrow{display:none}
tbody.spacer td{border:0!important;height:16px;background:transparent}
.escT{border-collapse:separate;border-spacing:0}

/* ---- quadros de cardápio ---- */
.semq{background:#fff;border:1px solid var(--bd);border-radius:14px;margin:12px 0;overflow:hidden}
.semq-h{background:var(--g);color:#fff;padding:9px 14px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-weight:700}
.semq-c{font-weight:400;font-size:13px}
.semq-g{display:grid;grid-template-columns:repeat(5,minmax(128px,1fr));gap:8px;padding:10px;overflow-x:auto}
.dia{display:flex;flex-direction:column;gap:6px;min-width:128px}
.dia-h{text-align:center;font-weight:700;color:var(--g);background:var(--g2);border-radius:8px;padding:5px}
.refb{border:1px solid var(--bd);border-radius:10px;padding:6px 8px;background:#fcfdfc}.refb.vazio{border:0;background:none}
.ref-t{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:var(--mut);text-transform:uppercase}
.chips{display:flex;flex-direction:column;gap:4px;margin-top:4px}
.chip-prep{text-align:left;border:1px solid var(--g2);background:#fff;border-radius:8px;padding:6px 8px;font:inherit;font-size:13px;color:var(--tx);cursor:pointer;min-height:34px}
.chip-prep:hover,.chip-prep:focus-visible{border-color:var(--g);background:#eef7f2}
.ref-c{font-size:12px;color:var(--mut);margin-top:3px;text-align:right}
.mini{border:0;background:var(--g2);border-radius:6px;cursor:pointer;padding:2px 7px;font-size:13px}
.dia-f{margin-top:auto;border-top:2px solid var(--g2);padding-top:6px;text-align:center}
.kcal{font-weight:700}.kcal.ok{color:var(--ok)}.kcal.fora{color:var(--warn)}.kcal small{font-weight:400;color:var(--mut)}
.barra{height:8px;background:var(--g2);border-radius:99px;margin:5px 0 2px;overflow:hidden}.barra i{display:block;height:100%;background:var(--g)}
.cdia{font-size:13px;font-weight:700}
.custobar{background:#fff;border:1px solid var(--bd);border-radius:14px;padding:12px 14px;margin-top:12px}
.cb-t{font-weight:700;margin-bottom:6px}.cb-b{display:flex;gap:3px;border-radius:10px;overflow:hidden}
.cb-b .seg{background:var(--g);color:#fff;padding:7px 8px;text-align:center;font-size:13px;display:flex;flex-direction:column;min-width:60px}.cb-b .seg:nth-child(even){background:#3f7c6c}.cb-b small{opacity:.85}
.cb-v{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px}
.home-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(220px,1fr);gap:14px;align-items:start;margin-top:10px}
@media(max-width:900px){.home-grid{grid-template-columns:1fr}}
.card.side{margin-top:10px}.card.side .big{font-size:24px;font-weight:700;color:var(--g)}
.tiles.minitiles{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));margin:12px 0}.minitiles .tile{min-height:56px;padding:8px 12px;flex-direction:row;align-items:center;gap:8px;white-space:nowrap}.minitiles .ic{font-size:20px;flex:none}.minitiles b{font-size:14px;white-space:nowrap;overflow:visible}
.aviso{border:1px solid var(--bd);background:#fff;border-radius:99px;padding:5px 12px;font:inherit;font-size:13px}.aviso.warn{border-color:var(--ac);background:#fff6e5;cursor:pointer}.aviso.ok{color:var(--ok)}
.ent select{font-size:12px;padding:2px 4px;margin-left:6px}
.cardt{width:100%;border-collapse:collapse}.cardt th,.cardt td{border:1px solid #666;padding:5px;vertical-align:middle;font-size:11px}.cardt th{background:#DCE9E3}
.pagina{page-break-inside:auto}
body.dark{--bg:#14201c;--tx:#e6efe9;--mut:#9db3aa;--card:#1d2d27;--bd:#33463f;--g2:#25392f}
body.dark nav,body.dark .tile,body.dark .card,body.dark .semq,body.dark .custobar,body.dark .refb,body.dark .chip-prep,body.dark .hero,body.dark .aviso,body.dark .chip,body.dark #modal-box{background:#1d2d27;color:var(--tx)}
body.dark input,body.dark select,body.dark textarea{background:#14201c;color:var(--tx);border:1px solid var(--bd)}
body.dark nav button.on{color:#7fd1a8}
body.dark th{background:#25392f;color:var(--tx)}body.dark td{border-color:var(--bd)}

@media print{html,body{background:#fff!important}}

/* ---- frequência ---- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}
.kpi{background:#fff;border:1px solid var(--bd);border-radius:14px;padding:10px 14px}.kpi span{display:block;font-size:13px;color:var(--mut)}.kpi b{font-size:26px;color:var(--g)}
.rosca{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.leg{display:grid;gap:4px;min-width:220px}.leg div{display:flex;gap:8px;align-items:center}.leg i{width:14px;height:14px;border-radius:4px;display:inline-block}.leg span{flex:1}
.calT{border-collapse:separate;border-spacing:2px;font-size:11px}.calT th{padding:2px 3px;font-weight:600;min-width:20px}.calT th.fds{color:#b0b8b4}.calT td.nm{white-space:nowrap;padding:2px 8px 2px 0;font-size:12px;position:sticky;left:0;background:var(--card,#fff)}
.calT td.cz{width:20px;height:20px;border-radius:4px;border:0;padding:0;text-align:center}.cz.ok{background:#2F9E6B;cursor:pointer}.cz.fal{background:#e45b4f;cursor:pointer}.cz.sa{background:#c9d0cc;cursor:pointer;color:#fff}.cz.fds{background:#eef1ef}.cz.fut{background:transparent}
.lg{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin:0 3px 0 10px}.lg.ok{background:#2F9E6B}.lg.fal{background:#e45b4f}.lg.sa{background:#c9d0cc}
.btn.sm[href],a.btn{text-decoration:none;display:inline-block}
body.dark .kpi{background:#1d2d27}body.dark .calT td.nm{background:#1d2d27}body.dark svg text{fill:#c8d6cf}

.homebtn{background:transparent;border:0;color:inherit;font:inherit;font-size:16px;cursor:pointer;padding:4px 6px;border-radius:8px;display:inline-flex;align-items:center;gap:6px}.homebtn:hover{background:rgba(255,255,255,.18)}
@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ===== responsivo ===== */
html{-webkit-text-size-adjust:100%}
img{max-width:100%}
input,select,textarea,button{max-width:100%}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px}.tabs .tab{white-space:nowrap;flex:none}
@media(min-width:1400px){main{max-width:1320px;margin-left:auto;margin-right:auto}}
@media(max-width:900px){
  .semq-g{grid-template-columns:repeat(5,minmax(150px,1fr))}
  .grid.tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important}
}
@media(max-width:640px){
  header{padding:6px 8px;gap:6px;flex-wrap:wrap}.who{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  nav{top:44px}nav button{padding:12px 10px}
  h2{font-size:20px}h3{font-size:17px}
  .btn,button.tab,select,input{min-height:40px}
  .btn{padding:9px 12px}
  .row{gap:6px}.row>label{flex:1 1 140px}.row>label input,.row>label select{width:100%}
  .card{padding:12px}
  .modal-box{max-width:100%;border-radius:14px 14px 0 0;padding:14px;max-height:92vh}.modal{align-items:flex-end!important}
  table th,table td{padding:6px 5px;font-size:12.5px}
  .hero{padding:10px}.hero img{height:56px}
  .semq-g{grid-template-columns:repeat(5,170px);scroll-snap-type:x proximity}.semq-g>*{scroll-snap-align:start}
  .home-grid{grid-template-columns:1fr}
  td input,td select{min-width:70px}
}
@media(max-width:380px){nav button{font-size:13px;padding:11px 8px}.tiles.minitiles{grid-template-columns:1fr 1fr}.minitiles .tile{padding:8px}.minitiles b{font-size:13px}}

/* impressão: quebra inteligente de texto e tabelas sempre dentro da página */
@media print{
  #print .pagina{width:100%;box-sizing:border-box;page-break-inside:auto}
  #print table{width:100%!important;max-width:100%;table-layout:auto;border-collapse:collapse}
  #print td,#print th{overflow-wrap:anywhere;word-wrap:break-word;hyphens:auto;vertical-align:middle;white-space:normal!important}
  #print tr{page-break-inside:avoid;break-inside:avoid}
  #print thead{display:table-header-group}
  #print h1,#print h2,#print h3{page-break-after:avoid}
  #print p{orphans:3;widows:3}
}

/* ---- v20: abas laterais, gráficos, visitas ---- */
.sidewrap{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;align-items:start}
.sidetabs{display:flex;flex-direction:column;gap:5px;position:sticky;top:8px}
.sidetabs button{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;padding:9px 11px;border:1px solid var(--bd);background:var(--card);color:var(--tx);border-radius:9px;cursor:pointer;font:inherit}
.sidetabs button.on{background:var(--g);color:#fff;border-color:var(--g)}
.sidetabs .cnt{min-width:24px;text-align:center;border-radius:99px;padding:1px 7px;font-size:12px;font-weight:700}
.sidetabs .cnt.warn{background:#FCE3B8;color:#7a4a00}.sidetabs .cnt.ok{background:#D6F0E1;color:#14633a}
.sidebody{margin:0;min-width:0}
@media(max-width:760px){.sidewrap{grid-template-columns:1fr}.sidetabs{flex-direction:row;overflow-x:auto;position:static;padding-bottom:4px}.sidetabs button{flex:none;white-space:nowrap}}
.gsvg{width:100%;height:auto;max-height:190px;color:var(--tx)}.gsvg.rosca{max-width:150px;margin:0 auto;display:block}
.legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;margin-top:6px}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}
.grow{display:flex;flex-direction:column;gap:6px}
.visita{cursor:pointer}.visita:hover{border-color:var(--g)}
.vitem{border-top:1px solid var(--bd);padding:8px 0}.vopc{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.vo{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--bd);border-radius:99px;padding:3px 10px;font-size:13px;cursor:pointer}
.vo input{accent-color:var(--c)}.vo.on{background:var(--c);color:#fff;border-color:var(--c)}
.vobs{width:100%}
.slotc{display:flex;gap:6px;align-items:center}.slotc select{flex:1;min-width:0}
.nowrap{white-space:nowrap}
.fonte{display:inline-block;font-size:11px;line-height:1;padding:3px 7px;border-radius:99px;font-weight:600;white-space:nowrap;vertical-align:middle}
.fonte.taco{background:#D6F0E1;color:#14633a}.fonte.ibge{background:#D9E8FB;color:#1b4a8a}.fonte.med{background:#FCE3B8;color:#7a4a00}.fonte.mix{background:#D4F0EF;color:#0d5c58}.fonte.bad{background:#F8D7D3;color:#8c1d14}
.nsug.on{background:var(--g);color:#fff;border-color:var(--g)}.nsug{text-align:left}

/* fichas técnicas: escolha de modalidade e semana */
.fmods{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fmod{background:#fff;color:var(--c);border:2px solid var(--c);font-weight:700;min-width:110px}
.fmod.on{background:var(--c);color:#fff}
.fsem{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fsb{display:flex;flex-direction:column;align-items:center;min-width:120px;line-height:1.25}.fsb small{font-weight:400;opacity:.85;font-size:11px}
.fsb[disabled]{opacity:.45;cursor:not-allowed}
.fprev{background:#eef1ef;border:1px solid var(--bd);border-radius:12px;padding:10px;margin-top:10px;overflow:auto;max-height:70vh}
.fprev .pagina{background:#fff;padding:14px;margin-bottom:12px;border:1px solid var(--bd);min-width:720px}

/* ===== JEST PNAE v38 – layout novo: menu lateral (computador) e barra inferior (celular) ===== */
.applogo{object-fit:contain}
#hsearch{background:#fff3;border:0;color:#fff;border-radius:99px;padding:5px 12px;cursor:pointer;font:inherit;font-size:13px}
.brand .applogo{background:#fff;border-radius:8px;padding:2px}
.login-card img.applogo{background:none;padding:0}
#tabbar,#maisSheet{display:none}
.sidebrand,.sidegrp{display:none}
.ini-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.ini-t{margin:0;font-size:28px;font-weight:800;color:var(--tx)}
.ini-rap{display:flex;gap:8px;flex-wrap:wrap}
.resumo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.rcard{background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.rcard span{font-size:13px;color:var(--mut);font-weight:600}.rcard b{font-size:24px;font-weight:800;color:var(--g)}.rcard small{color:var(--mut);font-size:12px}
.rcard:nth-child(3) b{color:#B36B00}.rcard:nth-child(4) b{color:#2A5F8F}
.ini-h{margin:12px 0 8px}
.ini-tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.ini-tiles .tile{min-height:92px;border-radius:18px;gap:10px}
.ini-tiles .tile .ic{width:40px;height:40px;border-radius:12px;background:var(--g2);color:var(--g);display:flex;align-items:center;justify-content:center;font-size:0}
.ini-tiles .tile b{font-size:14.5px;color:var(--tx)}
.ini-todas{display:none;margin:8px auto;background:none;border:0;color:var(--g);font:inherit;font-weight:700;cursor:pointer;padding:8px}
#hsearch span{display:inline}

/* computador: menu lateral */
@media(min-width:900px){
  #app{--lw:248px}
  #nav{position:fixed;left:0;top:0;bottom:0;width:var(--lw);background:#1F3D35;border:0;padding:16px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;z-index:30}
  #nav.recolhido{display:flex}
  .sidebrand{display:flex;align-items:center;gap:11px;padding:2px 8px 14px;color:#fff}
  .sidebrand img{width:42px;height:42px;background:#fff;border-radius:11px;padding:3px}
  .sidebrand b{display:block;font-size:17px;font-weight:800;line-height:1.1}.sidebrand small{color:#A9C6BA;font-size:11.5px}
  .sidegrp{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#8DB1A2;padding:12px 10px 4px;font-weight:700}
  #nav button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 10px;border-radius:10px;border:0;color:#CFE3DA;font-size:14.5px;font-weight:600;white-space:normal;background:none}
  #nav button:hover{background:#ffffff14}
  #nav button.on{background:#ffffff26;color:#fff;border:0;font-weight:700}
  header{margin-left:var(--lw);background:#fff;color:var(--tx);border-bottom:1px solid var(--bd);padding:10px 28px;top:0}
  header .brand img,header .homebtn{display:none}
  #voltarBtn{background:var(--g2);color:var(--g)}
  .who{gap:12px;font-size:13px}
  #hsearch{background:#EEF3F0;color:var(--tx);border-radius:12px;padding:8px 16px;min-width:230px;text-align:left}
  .who .badge{background:var(--g2);color:var(--g)}.who .badge.ok{background:#D6F0E1;color:#14633a}.who .badge.bad{background:#FADBD8;color:#B3261E}
  main{margin-left:var(--lw);max-width:none;padding:26px 36px 60px}
  .ini-tiles{display:none}
}
/* celular: barra inferior */
@media(max-width:899px){
  #nav{display:none!important}
  #tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--bd);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  #tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;color:var(--mut);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;padding:0}
  #tabbar button svg{width:52px;height:30px;padding:4px 15px;border-radius:15px;box-sizing:border-box}
  #tabbar button.on{color:#1F3D35}#tabbar button.on svg{background:var(--g2)}
  main{padding:12px 12px 96px}
  .toast{bottom:92px}
  #hsearch span{display:none}
  .resumo{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rcard b{font-size:20px}
  .ini-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ini-tiles .tile.extra{display:none}.ini-tiles.todas .tile.extra{display:flex}
  .ini-todas{display:block}
  .ini-rap{display:none}.ini-t{font-size:22px}
  #maisSheet{display:block;position:fixed;inset:0;z-index:60}
  .mais-fundo{position:absolute;inset:0;background:#0007}
  .mais-box{position:absolute;left:0;right:0;bottom:0;max-height:82vh;overflow-y:auto;background:var(--card);border-radius:22px 22px 0 0;padding:16px 14px calc(18px + env(safe-area-inset-bottom))}
  .mais-topo{display:flex;justify-content:space-between;align-items:center;font-size:17px}
  .mais-x{border:0;background:var(--g2);color:var(--g);border-radius:50%;width:32px;height:32px;font-size:15px;cursor:pointer}
  .sidegrp{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--mut);padding:12px 4px 6px;font-weight:700}
  .mais-grade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .mais-grade button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border:1px solid var(--bd);border-radius:14px;background:var(--card);color:var(--tx);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
  .mais-grade button svg{color:var(--g)}
  .mais-grade button.on{background:var(--g2);border-color:var(--g)}
}
body.dark #tabbar,body.dark .mais-box{background:#1d2d27}
body.dark header{background:#1d2d27}
body.dark .rcard,body.dark .ini-tiles .tile{background:#1d2d27}
@media print{#nav,#tabbar,#maisSheet,header{display:none!important}main{margin-left:0!important}}
@media(min-width:900px){.ini-h{display:none}}
@media(max-width:899px){
  header{flex-wrap:nowrap;gap:6px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top))}
  .brand{min-width:0}.brand b{font-size:15px;white-space:nowrap}
  .who{flex:none;gap:6px}#quem{display:none}
  #hsearch{padding:5px 9px}
}
/* v39 */
.vsec{margin:14px 0 2px;color:var(--g);font-size:15px;border-bottom:2px solid var(--g2);padding-bottom:3px}
.vfoto{position:relative}.vfoto img{width:110px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--bd);background:#eee}.vfoto button{position:absolute;top:4px;right:4px;padding:2px 7px}
.aopc{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.aopc label{display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:700;color:var(--c)}.aopc input{text-align:center;font-size:20px;font-weight:700;width:100%}
.stack{display:grid;gap:10px}
.stack textarea{min-height:56px}
#offbar{position:fixed;top:0;left:0;right:0;z-index:90;text-align:center;font-size:13px;font-weight:600;padding:5px 10px;color:#fff}
#offbar.off{background:#6b5300}#offbar.pend{background:#2A5F8F}
@media(min-width:900px){#offbar{left:248px}}

.rcard span{display:flex;align-items:center;justify-content:space-between;gap:6px}.olho{background:none;border:0;padding:4px;margin:-4px -4px -4px 0;cursor:pointer;color:var(--mut);border-radius:8px;display:inline-flex;line-height:0}.olho:hover{background:var(--g2,#DCE9E3);color:var(--g)}

/* ===== v48: celular (iPhone) - sem zoom ao tocar nos campos, sem rolagem lateral, listas em cartões ===== */
html,body{overflow-x:hidden;touch-action:manipulation}
button,.btn,.tab,select,summary,label{touch-action:manipulation}
@media(max-width:900px){
  input,select,textarea{font-size:16px!important}
  input[type=checkbox],input[type=radio]{font-size:inherit!important;width:20px;height:20px}
  .btn,.tab,#tabbar button{-webkit-tap-highlight-color:transparent}
  .tabs{scrollbar-width:none;margin-left:-2px;padding-right:18px}.tabs::-webkit-scrollbar{display:none}
  .card{overflow-wrap:anywhere}
}
/* escolas da antropometria: lista em linhas */
.esl{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 4px;border-top:1px solid var(--bd)}
.esl:first-of-type{border-top:0}
.esl .en{min-width:0;flex:1}.esl .en b{display:block}.esl .em{font-size:12.5px;color:var(--mut);line-height:1.4}
.esl .btn{flex:none;min-width:76px;text-align:center}
/* grade de alunos da antropometria: cada aluno vira um cartão no celular */
@media(max-width:760px){
  #agtb,#agtb tbody{display:block;width:100%}
  #agtb tr:first-child{display:none}
  #agtb tr[data-i]{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:12px;background:var(--card,#fff);box-shadow:0 1px 3px rgba(0,0,0,.05)}
  #agtb td{display:block;border:0!important;padding:0!important;min-width:0}
  #agtb td[data-l]::before{content:attr(data-l);display:block;font-size:11.5px;font-weight:700;color:var(--mut);margin-bottom:2px}
  #agtb td.full{grid-column:1/-1}
  #agtb td input:not([type=checkbox]),#agtb td select{width:100%!important;min-width:0!important;max-width:100%;min-height:44px;box-sizing:border-box}
  #agtb td.res{grid-column:1/-1;min-width:0!important;background:var(--g2,#e3eee9);border-radius:10px;padding:8px 10px!important}
  #agtb td.acoes{grid-column:1/-1;display:flex!important;gap:8px;flex-wrap:wrap}
  #agtb td.acoes .btn{min-height:42px;min-width:48px}
  #agtb td.idade{align-self:end;font-weight:700}
}
@media(max-width:760px){#agtb td label{display:flex;align-items:center;gap:8px;font-size:15px;white-space:normal!important}}
