:root{--ccs-tf-z:2147482500;--ccs-tf-green:#16823a;--ccs-tf-red:#d9342b;--ccs-tf-yellow:#ffd45a;--ccs-tf-blue:#2775d1;--ccs-tf-orange:#ff8b22;--ccs-tf-paper:#fff8e6}
.ccs-tf-stage{position:fixed;inset:0;z-index:var(--ccs-tf-z);pointer-events:none;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;contain:layout paint style}
.ccs-tf-stage.ccs-tf-out{animation:ccsTfFadeOut .65s ease forwards}
.ccs-tf-banner{position:absolute;left:50%;top:18%;transform:translateX(-50%);max-width:min(92vw,540px);padding:15px 18px;border-radius:22px;background:rgba(255,248,230,.96);box-shadow:0 16px 50px rgba(0,0,0,.18);color:#4d2f09;text-align:center;font-weight:900;font-size:clamp(17px,4vw,27px);letter-spacing:.01em;border:2px solid rgba(255,196,55,.9)}
.ccs-tf-banner small{display:block;margin-top:4px;font-weight:700;font-size:13px;color:#765018}
.ccs-tf-flags{position:absolute;left:-4vw;right:-4vw;top:16px;height:86px;transform:rotate(-2deg);opacity:.98}
.ccs-tf-flags:before{content:"";position:absolute;left:0;right:0;top:12px;height:3px;background:rgba(111,67,18,.75);box-shadow:0 2px 0 rgba(255,255,255,.45)}
.ccs-tf-flag{position:absolute;top:13px;width:31px;height:38px;clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%);filter:drop-shadow(0 4px 4px rgba(0,0,0,.18));animation:ccsTfSwing 1.35s ease-in-out infinite alternate;transform-origin:50% 0}
.ccs-tf-flag:nth-child(4n+1){background:var(--ccs-tf-red)}.ccs-tf-flag:nth-child(4n+2){background:var(--ccs-tf-yellow)}.ccs-tf-flag:nth-child(4n+3){background:var(--ccs-tf-green)}.ccs-tf-flag:nth-child(4n+4){background:var(--ccs-tf-blue)}
.ccs-tf-piece{position:absolute;top:-70px;will-change:transform,opacity;animation-name:ccsTfFall;animation-timing-function:linear;animation-fill-mode:forwards;text-align:center;filter:drop-shadow(0 3px 3px rgba(0,0,0,.15))}
.ccs-tf-piece[data-shape="dot"]{border-radius:999px}.ccs-tf-piece[data-shape="strip"]{border-radius:3px}.ccs-tf-piece[data-shape="flag"]{clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%)}
.ccs-tf-corner{position:fixed;top:calc(118px + env(safe-area-inset-top));left:clamp(14px,12vw,230px);right:12px;z-index:2147482400;pointer-events:none;height:42px;opacity:0;animation:ccsTfCornerIn .55s ease .25s forwards;contain:layout paint style;overflow:visible}
.ccs-tf-corner-line{position:absolute;left:0;right:0;top:9px;height:3px;background:linear-gradient(90deg,rgba(111,67,18,0),rgba(111,67,18,.72) 5%,rgba(111,67,18,.72) 95%,rgba(111,67,18,0));box-shadow:0 2px 0 rgba(255,255,255,.45);transform:rotate(-.55deg);transform-origin:left center}
.ccs-tf-corner .ccs-tf-mini{position:absolute;top:10px;width:19px;height:25px;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%);filter:drop-shadow(0 3px 2px rgba(0,0,0,.14));animation:ccsTfFlagTopSwing 1.7s ease-in-out infinite alternate;transform-origin:50% 0}
.ccs-tf-corner .ccs-tf-mini:nth-child(4n+2){background:var(--ccs-tf-red)}.ccs-tf-corner .ccs-tf-mini:nth-child(4n+3){background:var(--ccs-tf-yellow)}.ccs-tf-corner .ccs-tf-mini:nth-child(4n+4){background:var(--ccs-tf-green)}.ccs-tf-corner .ccs-tf-mini:nth-child(4n+5){background:var(--ccs-tf-blue)}
.ccs-tf-corner .ccs-tf-mini:nth-child(2){left:0}.ccs-tf-corner .ccs-tf-mini:nth-child(3){left:7.5%}.ccs-tf-corner .ccs-tf-mini:nth-child(4){left:15%}.ccs-tf-corner .ccs-tf-mini:nth-child(5){left:22.5%}.ccs-tf-corner .ccs-tf-mini:nth-child(6){left:30%}.ccs-tf-corner .ccs-tf-mini:nth-child(7){left:37.5%}.ccs-tf-corner .ccs-tf-mini:nth-child(8){left:45%}.ccs-tf-corner .ccs-tf-mini:nth-child(9){left:52.5%}.ccs-tf-corner .ccs-tf-mini:nth-child(10){left:60%}.ccs-tf-corner .ccs-tf-mini:nth-child(11){left:67.5%}.ccs-tf-corner .ccs-tf-mini:nth-child(12){left:75%}.ccs-tf-corner .ccs-tf-mini:nth-child(13){left:82.5%}.ccs-tf-corner .ccs-tf-mini:nth-child(14){left:90%}.ccs-tf-corner .ccs-tf-mini:nth-child(15){left:97%;transform:translateX(-100%)}
.ccs-tf-float{position:fixed;right:12px;top:45vh;z-index:2147482350;pointer-events:none;width:118px;height:118px;opacity:0;animation:ccsTfFloatIn .5s ease forwards,ccsTfFloatOut .7s ease 7.2s forwards;contain:layout paint style}
.ccs-tf-balloon{position:absolute;right:4px;top:2px;font-size:26px;animation:ccsTfBob 1.7s ease-in-out infinite alternate;filter:drop-shadow(0 5px 4px rgba(0,0,0,.18))}
.ccs-tf-corn{position:absolute;left:8px;top:34px;font-size:24px;animation:ccsTfBob 1.9s ease-in-out .2s infinite alternate;filter:drop-shadow(0 5px 4px rgba(0,0,0,.13))}
.ccs-tf-fire{position:absolute;left:43px;top:48px;width:38px;height:42px;border-radius:50% 50% 45% 45%;background:radial-gradient(circle at 50% 70%,#ffe66d 0 18%,#ff9f1a 19% 46%,#e64019 48% 72%,rgba(230,64,25,0) 74%);filter:drop-shadow(0 0 8px rgba(255,122,18,.55));animation:ccsTfFire .34s ease-in-out infinite alternate;transform-origin:50% 90%}
.ccs-tf-fire:before,.ccs-tf-fire:after{content:"";position:absolute;bottom:-5px;width:34px;height:8px;border-radius:999px;background:#6f4312;transform:rotate(18deg);left:2px}.ccs-tf-fire:after{transform:rotate(-18deg)}
.ccs-tf-mini-stage{position:fixed;inset:0;z-index:2147482320;pointer-events:none;overflow:hidden;contain:layout paint style}
.ccs-tf-mini-burst{position:absolute;left:50%;top:49%;font-size:20px;animation:ccsTfBurst 2.8s ease forwards;filter:drop-shadow(0 4px 4px rgba(0,0,0,.16))}
.ccs-tf-map-chip{position:fixed;right:12px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:2147482300;pointer-events:none;background:rgba(255,248,230,.94);color:#7a4306;border:1px solid rgba(255,196,55,.9);box-shadow:0 8px 26px rgba(0,0,0,.16);border-radius:999px;padding:7px 11px;font-size:13px;font-weight:900;opacity:0;animation:ccsTfChip 6.5s ease 1.5s forwards}
@keyframes ccsTfFall{0%{transform:translate3d(0,-70px,0) rotate(0deg);opacity:0}8%{opacity:1}88%{opacity:1}100%{transform:translate3d(var(--ccs-tf-drift,0px),110vh,0) rotate(var(--ccs-tf-rot,360deg));opacity:0}}
@keyframes ccsTfSwing{from{transform:rotate(-5deg)}to{transform:rotate(6deg)}}
@keyframes ccsTfFlagTopSwing{from{transform:translateY(0) rotate(-4deg)}to{transform:translateY(3px) rotate(5deg)}}
@keyframes ccsTfFadeOut{to{opacity:0;visibility:hidden}}
@keyframes ccsTfCornerIn{to{opacity:1}}
@keyframes ccsTfCornerFloat{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(4px) rotate(1deg)}}
@keyframes ccsTfFloatIn{to{opacity:1;transform:translateY(0)}}
@keyframes ccsTfFloatOut{to{opacity:0;transform:translateY(14px) scale(.96);visibility:hidden}}
@keyframes ccsTfBob{from{transform:translateY(0) rotate(-3deg)}to{transform:translateY(8px) rotate(4deg)}}
@keyframes ccsTfFire{from{transform:scale(.92,1.04) rotate(-2deg)}to{transform:scale(1.08,.94) rotate(2deg)}}
@keyframes ccsTfBurst{0%{opacity:0;transform:translate3d(0,0,0) scale(.5) rotate(0deg)}12%{opacity:1}82%{opacity:1}100%{opacity:0;transform:translate3d(var(--x),var(--y),0) scale(1.05) rotate(var(--r))}}
@keyframes ccsTfChip{0%{opacity:0;transform:translateY(8px)}15%,72%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(8px)}}
@media (max-width:600px){.ccs-tf-flags{top:10px;height:70px}.ccs-tf-flag{width:24px;height:31px}.ccs-tf-banner{top:16%;font-size:18px;padding:12px 14px}.ccs-tf-corner{top:calc(8px + env(safe-area-inset-top))!important;left:8px!important;right:auto!important;bottom:auto!important;width:96px;height:46px;transform:scale(.78)!important;transform-origin:top left!important;animation:ccsTfCornerIn .55s ease .25s forwards,ccsTfCornerFloatMobile 2.5s ease-in-out .9s infinite alternate!important}.ccs-tf-corner-line{top:8px}.ccs-tf-corner .ccs-tf-mini{top:9px;width:15px;height:20px}.ccs-tf-corner .ccs-tf-mini:nth-child(2){left:7px}.ccs-tf-corner .ccs-tf-mini:nth-child(3){left:28px}.ccs-tf-corner .ccs-tf-mini:nth-child(4){left:49px}.ccs-tf-corner .ccs-tf-mini:nth-child(5){left:70px}.ccs-tf-float{right:8px;top:46vh;transform:scale(.9);transform-origin:center right}.ccs-tf-map-chip{right:8px;bottom:calc(76px + env(safe-area-inset-bottom));font-size:12px}}
@keyframes ccsTfCornerFloatMobile{from{transform:scale(.78) translateY(0) rotate(-1deg)}to{transform:scale(.78) translateY(4px) rotate(1deg)}}
@media (prefers-reduced-motion:reduce){.ccs-tf-stage{display:none!important}.ccs-tf-corner,.ccs-tf-map-chip,.ccs-tf-float{animation:none!important;opacity:1}.ccs-tf-mini-stage{display:none!important}}

/* v1.0.3: faixa fixa de bandeirinhas no topo, sem ficar no meio do mobile */
@media (max-width:600px){.ccs-tf-corner{top:calc(176px + env(safe-area-inset-top))!important;left:10px!important;right:10px!important;width:auto!important;height:34px!important;transform:none!important;transform-origin:center top!important;animation:ccsTfCornerIn .55s ease .25s forwards!important}.ccs-tf-corner-line{top:7px!important}.ccs-tf-corner .ccs-tf-mini{top:8px!important;width:15px!important;height:20px!important;animation:ccsTfFlagTopSwing 1.7s ease-in-out infinite alternate!important}.ccs-tf-corner .ccs-tf-mini:nth-child(2){left:0!important}.ccs-tf-corner .ccs-tf-mini:nth-child(3){left:7.5%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(4){left:15%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(5){left:22.5%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(6){left:30%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(7){left:37.5%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(8){left:45%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(9){left:52.5%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(10){left:60%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(11){left:67.5%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(12){left:75%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(13){left:82.5%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(14){left:90%!important}.ccs-tf-corner .ccs-tf-mini:nth-child(15){left:97%!important;transform:translateX(-100%)!important}}
@media (min-width:601px) and (max-width:900px){.ccs-tf-corner{top:calc(128px + env(safe-area-inset-top));left:18px;right:18px}}


/* v1.0.4: mobile grudado no cabeçalho superior, acima do card do condomínio */
@media (max-width:600px){
  .ccs-tf-corner{
    position:fixed!important;
    top:calc(68px + env(safe-area-inset-top))!important;
    left:8px!important;
    right:8px!important;
    width:auto!important;
    height:30px!important;
    z-index:2147482100!important;
    transform:none!important;
    transform-origin:center top!important;
    opacity:0;
    animation:ccsTfCornerIn .55s ease .25s forwards!important;
  }
  body.admin-bar .ccs-tf-corner{top:calc(100px + env(safe-area-inset-top))!important;}
  .ccs-tf-corner-line{
    top:3px!important;
    height:2px!important;
    transform:rotate(-.25deg)!important;
    background:linear-gradient(90deg,rgba(111,67,18,0),rgba(111,67,18,.70) 4%,rgba(111,67,18,.70) 96%,rgba(111,67,18,0))!important;
  }
  .ccs-tf-corner .ccs-tf-mini{
    top:4px!important;
    width:14px!important;
    height:19px!important;
    filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))!important;
    animation:ccsTfFlagTopSwing 1.8s ease-in-out infinite alternate!important;
  }
}
@media (max-width:380px){
  .ccs-tf-corner{top:calc(64px + env(safe-area-inset-top))!important;}
  body.admin-bar .ccs-tf-corner{top:calc(96px + env(safe-area-inset-top))!important;}
  .ccs-tf-corner .ccs-tf-mini{width:13px!important;height:18px!important;}
}

/* v2.0.0 — calendário completo, temas próprios e modo diário leve */
.ccs-tf-banner{background:rgba(255,255,255,.96);border-color:var(--ccs-tf-accent,#fbbf24);color:#183153;padding:16px 20px;font-size:clamp(19px,3vw,29px);animation:ccsTfBannerIn .48s cubic-bezier(.2,.8,.2,1) both}
.ccs-tf-banner b{display:block}.ccs-tf-banner .ccs-tf-personal{display:block;margin-top:8px;color:#1e3a5f;font-size:17px;font-weight:800;line-height:1.3}.ccs-tf-banner small{color:#475569;font-weight:650;font-size:16px;line-height:1.45;margin-top:7px}
.ccs-tf-theme-daily .ccs-tf-banner{top:15%;max-width:min(88vw,460px);border-width:1px;box-shadow:0 14px 42px rgba(15,23,42,.15);--ccs-tf-accent:#fbbf24}
.ccs-tf-theme-ano_novo{--ccs-tf-accent:#d9a441}.ccs-tf-theme-carnaval{--ccs-tf-accent:#a855f7}.ccs-tf-theme-dia_mulher,.ccs-tf-theme-dia_maes{--ccs-tf-accent:#f472b6}
.ccs-tf-theme-outono{--ccs-tf-accent:#d97706}.ccs-tf-theme-pascoa{--ccs-tf-accent:#a78bfa}.ccs-tf-theme-festa_junina{--ccs-tf-accent:#f59e0b}
.ccs-tf-theme-inverno{--ccs-tf-accent:#38bdf8}.ccs-tf-theme-dia_pais{--ccs-tf-accent:#2563eb}.ccs-tf-theme-primavera{--ccs-tf-accent:#ec4899}
.ccs-tf-theme-criancas{--ccs-tf-accent:#22c55e}.ccs-tf-theme-halloween{--ccs-tf-accent:#f97316}.ccs-tf-theme-verao{--ccs-tf-accent:#facc15}.ccs-tf-theme-natal{--ccs-tf-accent:#dc2626}
.ccs-tf-theme-float{position:fixed;right:18px;top:43vh;z-index:2147482350;pointer-events:none;font-size:44px;filter:drop-shadow(0 7px 6px rgba(0,0,0,.16));animation:ccsTfThemeFloat 5.2s ease both;contain:layout paint style}
.ccs-tf-corner:not(.ccs-tf-corner-festa_junina){display:flex;align-items:center;justify-content:center;gap:clamp(12px,4vw,48px);top:calc(92px + env(safe-area-inset-top));height:34px;overflow:hidden;background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent)}
.ccs-tf-symbol{font-size:20px;animation:ccsTfSymbol 2.4s ease-in-out infinite alternate;filter:drop-shadow(0 2px 2px rgba(0,0,0,.1))}.ccs-tf-symbol:nth-child(2n){animation-delay:.35s}.ccs-tf-symbol:nth-child(3n){animation-delay:.7s}
@keyframes ccsTfBannerIn{from{opacity:0;transform:translate(-50%,-14px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes ccsTfThemeFloat{0%{opacity:0;transform:translateY(16px) scale(.82)}18%,70%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-18px) scale(.92)}}
@keyframes ccsTfSymbol{from{transform:translateY(0) rotate(-3deg)}to{transform:translateY(4px) rotate(4deg)}}
@media(max-width:600px){.ccs-tf-banner{top:18%;width:calc(100vw - 34px);box-sizing:border-box;padding:14px 15px;font-size:19px}.ccs-tf-banner .ccs-tf-personal{font-size:15.5px}.ccs-tf-banner small{font-size:15px;line-height:1.4}.ccs-tf-theme-daily .ccs-tf-banner{top:14%}.ccs-tf-theme-float{right:10px;top:42vh;font-size:35px}.ccs-tf-corner:not(.ccs-tf-corner-festa_junina){top:calc(68px + env(safe-area-inset-top))!important;display:flex!important;gap:18px!important;height:27px!important;background:linear-gradient(90deg,transparent,rgba(255,255,255,.82),transparent)!important}.ccs-tf-corner:not(.ccs-tf-corner-festa_junina) .ccs-tf-symbol{font-size:16px}}
@media(max-width:600px),(prefers-reduced-motion:reduce){.ccs-tf-piece{will-change:auto}}
@media(prefers-reduced-motion:reduce){.ccs-tf-stage{display:block!important}.ccs-tf-piece,.ccs-tf-theme-float,.ccs-tf-corner{display:none!important}.ccs-tf-banner{animation:none!important}}
