/* ============================================================
   calendario.css — o calendário de período (calendario.js): popover no PC (atalhos + 2 meses) e folha quase inteira no celular (chips, dias fixos, meses em lista).
   Verde bem suave no intervalo, pontas em círculo verde da marca (var(--marca)) com número branco, hoje com anel fino, dias de fora apagados. Aplicar é verde-escuro, nunca amarelo.
   Só transform e opacity se mexem (popover .96→1, folha com mola, fade do intervalo); o efeito fica ligado mesmo com "Reduzir movimento".
   ============================================================ */
:root{--cal-tom:rgba(15,99,39,.11)}
/* ---- o dia ---- */
.cal-d{--ch:36px;--ci:32px;position:relative;isolation:isolate;display:grid;place-items:center;height:var(--ch);padding:0;border:0;background:none;color:var(--tinta);font-size:14px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cal-d.num{font-weight:600}
.cal-d::before,.cal-d::after{content:"";position:absolute;pointer-events:none}
.cal-d::before{left:0;right:0;top:calc((var(--ch) - var(--ci)) / 2);bottom:calc((var(--ch) - var(--ci)) / 2);z-index:-2;background:transparent}
.cal-d.em::before{background:var(--cal-tom);animation:cal-pinta .18s ease backwards}
.cal-d.ini:not(.un)::before{left:50%;background:var(--cal-tom);animation:cal-pinta .18s ease backwards}
.cal-d.fim:not(.un)::before{right:50%;background:var(--cal-tom);animation:cal-pinta .18s ease backwards}
.cal-d.em:nth-child(7n+1)::before{border-radius:calc(var(--ci) / 2) 0 0 calc(var(--ci) / 2)}
.cal-d.em:nth-child(7n)::before{border-radius:0 calc(var(--ci) / 2) calc(var(--ci) / 2) 0}
.cal-d.ini::after,.cal-d.fim::after,.cal-d.hoje::after{left:50%;top:50%;width:var(--ci);height:var(--ci);margin:calc(var(--ci) / -2) 0 0 calc(var(--ci) / -2);border-radius:50%;z-index:-1}
.cal-d.ini::after,.cal-d.fim::after{background:var(--marca);animation:cal-pop .16s ease backwards}
.cal-d.ini,.cal-d.fim{color:#fff;font-weight:700}
.cal-d.hoje:not(.ini):not(.fim)::after{box-shadow:inset 0 0 0 1.5px var(--tinta-2)}
.cal-d.fora{color:var(--cinza-2);opacity:.5;cursor:default}
.cal-d:not(.fora):not(.ini):not(.fim):hover::after{content:"";left:50%;top:50%;width:var(--ci);height:var(--ci);margin:calc(var(--ci) / -2) 0 0 calc(var(--ci) / -2);border-radius:50%;z-index:-1;box-shadow:inset 0 0 0 1.5px var(--fl-ln)}
.tec .cal-d.cur{outline:2px solid var(--verde-acao);outline-offset:-2px;border-radius:50%}
@keyframes cal-pinta{from{opacity:0}}
@keyframes cal-pop{from{opacity:.4;transform:scale(.8)}}
/* ---- o mês ---- */
.cal-m{width:100%}
.cal-mh{display:flex;align-items:center;justify-content:space-between;height:36px;margin-bottom:6px}
.cal-mt{font:800 16px var(--fonte-titulo);letter-spacing:-.01em}
.cal-nav{width:36px;height:36px;border:0;border-radius:50%;background:none;color:var(--tinta);font-size:24px;line-height:1;cursor:pointer;transition:transform .18s,background .2s}
.cal-nav[aria-disabled=true]{color:var(--cinza-2);pointer-events:none}
.cal-meses.desl{animation:cal-desl .2s ease backwards}@keyframes cal-desl{from{opacity:0;transform:translateX(var(--dx,24px))}}
.cal-nav:hover{background:var(--card-2)}.cal-nav:active{transform:scale(.9)}
.cal-sem{display:grid;grid-template-columns:repeat(7,1fr);align-items:center;height:28px;text-align:center;font:700 12px var(--fonte-titulo);color:var(--tinta-2)}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr)}
/* ---- PC: popover ---- */
.cal-pop{position:fixed;z-index:100;display:flex;background:#fff;border:1px solid var(--fl-ln);border-radius:16px;box-shadow:0 18px 44px rgba(5,39,14,.22),0 2px 8px rgba(5,39,14,.08);transform-origin:top left;outline:0;animation:fl-menu .16s var(--curva-entrada) backwards}
.cal-pop.saindo{opacity:0;transition:opacity .12s}
.cal-at{display:flex;flex-direction:column;gap:2px;width:164px;padding:14px 8px;border-right:1px solid var(--fl-ln)}
.cal-ata{height:38px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--tinta);font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .15s,transform .18s}
.cal-ata:hover{background:var(--card-2)}.cal-ata:active{transform:scale(.97)}
.cal-ata.on{font-weight:800;background:var(--card-2)}
.cal-mid{padding:14px 18px 0}
.cal-meses{display:flex;gap:28px}
.cal-pop .cal-m{width:252px}
.cal-pop .cal-g{grid-template-rows:repeat(6,36px)}
.cal-rod{display:flex;align-items:center;gap:14px;margin-top:10px;padding:14px 0 16px;border-top:1px solid var(--fl-ln)}
.cal-res{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--tinta)}
.cal-cancel{min-height:40px;padding:0 6px;border:0;background:none;color:var(--tinta-2);font:inherit;font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cal-ap{height:42px;padding:0 24px;border:0;border-radius:12px;background:var(--marca);color:#fff;font:700 15px var(--fonte-titulo);cursor:pointer;transition:transform .18s,opacity .2s}
.cal-ap:active{transform:scale(.97)}.cal-ap:disabled{opacity:.35;cursor:default}
/* ---- celular: folha quase inteira ---- */
.cal-fo{--ch:48px;--ci:40px;display:flex;flex-direction:column;width:100%;height:92vh;max-height:92vh;padding-top:10px;border-radius:24px 24px 0 0;background:#fff;box-shadow:0 80px 0 #fff;outline:0;animation:fl-sobe .5s var(--fl-mola) backwards}
.cal-fo .cal-d{--ch:48px;--ci:40px;font-size:16px}
.cal-chips{display:flex;gap:8px;overflow-x:auto;padding:6px 20px 12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cal-chips::-webkit-scrollbar{display:none}
.cal-chip{flex:none;height:38px;padding:0 15px;border:1px solid var(--fl-ln);border-radius:99px;background:#fff;color:var(--tinta);font:inherit;font-size:14px;white-space:nowrap;cursor:pointer;transition:transform .18s,border-color .2s}
.cal-chip:active{transform:scale(.97)}.cal-chip.on{border-color:var(--marca);font-weight:800}
.cal-fo>.cal-sem{padding:0 20px;height:34px;border-bottom:1px solid var(--fl-ln);background:#fff}
.cal-lista{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 20px 16px}
.cal-fo .cal-m{margin-top:20px}.cal-fo .cal-mh{justify-content:flex-start;height:32px}.cal-fo .cal-mt{font-size:18px}
.cal-fo .cal-rod{margin:0;padding:12px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--fl-ln);background:#fff}
.cal-fo .cal-ap{height:50px;padding:0 28px;border-radius:14px;font-size:16px}
.cal-fundo.saindo{opacity:0;transition:opacity .2s}.cal-fundo.saindo>.cal-fo{transform:translateY(100%);transition:transform .2s ease-in}
