
#modal.goals-modal{width:min(560px,calc(100vw - 20px));max-height:94dvh;padding:0}#modal.goals-modal #modal-content{padding:12px;overflow:hidden}.goals-screen{font-size:var(--kz-fs-xs)}.goal-tabs{display:flex;gap:6px;margin:8px 0 14px}.goal-tabs button{flex:1;min-width:0;position:relative;padding:10px 5px;background:var(--surface);color:var(--text);border:2px solid var(--wood);border-radius:var(--kz-r-sm);font-weight:bold}.goal-tabs button.active{background:#e5b962;color:#3d3328}.goal-badge{background:#ad4f38;color:white;border-radius:var(--kz-r-lg);padding:2px 6px;font-size:var(--kz-fs-xs);margin-left:5px}.goals-missions,.goals-screen[data-goals-tab=collection]{max-height:65dvh;overflow:auto}.goal-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #9e916c55}.goal-row>div{flex:1;min-width:0}.goal-row strong,.goal-row small,.goal-row progress{display:block}.goal-row progress{width:100%;height:8px;margin:6px 0}.goal-row small{font-size:var(--kz-fs-xs)}.goal-row button{min-height:34px;padding:6px 9px}.pass-banner{height:105px;background-image:linear-gradient(transparent,#172d35b3),var(--season-art);background-position:center;background-size:cover;border:3px solid #5d482f;border-radius:var(--kz-r-md);position:relative;color:#fff5dc;overflow:hidden}.pass-banner>span{position:absolute;right:7px;top:7px;background:#283d36e8;border-radius:var(--kz-r-sm);padding:4px 7px;font-size:var(--kz-fs-xs)}.pass-banner>div{position:absolute;bottom:9px;left:12px;text-shadow:1px 2px #152628}.pass-banner h3{font-size:var(--kz-fs-lg);margin:0}.pass-progress{display:flex;gap:12px;align-items:center;margin:10px 0}.pass-progress>div:last-child{flex:1}.pass-progress progress{display:block;width:100%;height:10px;margin:5px 0;accent-color:#d7a551}.pass-level{position:relative;width:46px;height:48px;flex:none}.pass-level img{width:46px;height:48px}.pass-level b{position:absolute;inset:15px 0;text-align:center;color:#4b3524;font-size:var(--kz-fs-lg)}.pass-progress button{font-size:var(--kz-fs-xs);min-height:22px;padding:0}.pass-final{display:flex;gap:9px;width:100%;align-items:center;padding:7px;background:var(--surface);color:var(--text);border:2px solid #bb9a55;border-radius:var(--kz-r-md);text-align:left}.pass-final img{width:70px;height:44px;object-fit:cover;border-radius:var(--kz-r-sm)}.pass-final strong,.pass-final small{display:block}.pass-final small{font-size:var(--kz-fs-xs)}.pass-track-labels{display:flex;justify-content:space-between;padding:8px 10px 5px;font-size:var(--kz-fs-xs)}.pass-track{position:relative;max-height:35dvh;min-height:120px;overflow-y:auto;overscroll-behavior:contain;padding:0 4px;scrollbar-width:thin}.pass-row{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);gap:6px;align-items:center;margin-bottom:8px}.pass-reward{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;min-height:86px;padding:5px;border:2px solid #a8a489;border-radius:var(--kz-r-sm);background:var(--surface)}.pass-reward>img{width:27px;height:27px;object-fit:contain}.pass-reward strong{font-size:var(--kz-fs-xs);line-height:1.2}.pass-reward small{font-size:var(--kz-fs-xs)}.pass-reward.ready{border-color:#cf9d44;background:#e3c58025}.pass-reward.claimed{opacity:.5}.pass-reward.future,.pass-reward.locked{filter:grayscale(.65);opacity:.65}.pass-claim{padding:3px 7px!important;font-size:var(--kz-fs-xs) !important;min-height:24px!important;background:#72552f;color:#fff0cf;border:1px solid #e5c477;border-radius:var(--kz-r-sm)}.pass-lantern{position:relative;filter:grayscale(1);opacity:.35}.pass-lantern img{width:32px;height:42px}.pass-lantern b{position:absolute;inset:13px 0;text-align:center;color:#4b3320}.pass-lantern.lit,.pass-lantern.current{filter:none;opacity:1}.pass-lantern.lit{filter:drop-shadow(0 0 4px #ffce76)}.pass-lantern.current{animation:pass-pulse 1.8s ease-in-out infinite}.pass-row.milestone .pass-reward{min-height:100px;border-width:3px}.pass-footer{display:flex;align-items:center;gap:7px;background:var(--surface);border-top:2px solid #bca073;padding:8px 0 2px}.pass-footer button{flex:1;padding:6px 7px;font-size:var(--kz-fs-xs);min-height:36px}.pass-footer img{width:17px;height:17px;vertical-align:middle}.pass-golden{background:#d7ad5d;color:#3d2f20;border:2px solid #876735;border-radius:var(--kz-r-sm);font-weight:bold}.pass-golden-active{color:#887032;font-weight:bold;font-size:var(--kz-fs-xs)}.pass-next{font-size:var(--kz-fs-xs);margin-top:7px;color:#977545}.pass-extra{display:flex;flex-direction:column;gap:5px;align-items:center;padding:12px}.pass-cosmetics{margin-top:8px;max-height:90px;overflow:auto}.pass-cosmetics button{display:block;font-size:var(--kz-fs-xs);margin:4px 0;width:100%}.welcome-calendar{text-align:center}.welcome-calendar>img{width:46px}.welcome-calendar h3{margin:5px}.welcome-calendar .login-calendar{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.welcome-calendar .login-calendar span{min-width:0;display:flex;flex-direction:column;align-items:center;padding:8px 3px;border:2px solid #b3aa88;border-radius:var(--kz-r-sm);font-size:var(--kz-fs-xs)}.welcome-calendar .login-calendar img{width:25px;height:25px}.welcome-calendar .login-calendar .current{background:#dec07850;border-color:#ac8038}.welcome-calendar .login-calendar small{font-size:var(--kz-fs-xs)}.pass-reward-flight,.pass-level-toast{position:fixed;z-index:12000;left:50%;top:40%;translate:-50% -50%;padding:10px 18px;border:2px solid #e9c477;background:#314839;color:#fff0ce;border-radius:var(--kz-r-md);display:flex;gap:10px;align-items:center;pointer-events:none;max-width:80vw}.pass-reward-flight img{width:32px;height:32px}.pass-level-toast{top:22%;flex-direction:column;box-shadow:0 0 30px #ddb85955;animation:pass-toast .5s}.pass-level-toast img{width:44px}.season-frame{border-color:#eac065!important;box-shadow:0 0 8px #e6b45a}.season-title{color:#f4cf80;font-size:var(--kz-fs-xs)}.pass-sources{padding-left:20px}.pass-sources li{margin:10px 0}.season-village-decoration{position:absolute;right:8%;bottom:13%;width:26px;pointer-events:none;filter:drop-shadow(0 0 5px #f6ce7a)}@keyframes pass-pulse{50%{filter:drop-shadow(0 0 7px #ffda91)}}@keyframes pass-toast{from{opacity:0;scale:.7}to{opacity:1;scale:1}}@media(prefers-reduced-motion:reduce){.pass-lantern.current,.pass-level-toast{animation:none}}@media(max-height:720px){.pass-banner{height:75px}.pass-track{max-height:30dvh}.pass-final img{height:36px}.pass-progress{margin:6px 0}}

.pass-final-preview,.pass-buy-confirm,.pass-celebration{text-align:center}.pass-final-preview img,.pass-celebration img{width:min(100%,320px);border:3px solid #a5824f;border-radius:var(--kz-r-md)}.pass-celebration{padding:14px;background:#254336;color:#fff0ca;border:3px solid #d4b96b;border-radius:var(--kz-r-md)}.pass-celebration h2{color:#ffd780}.pass-celebration img{box-shadow:0 0 20px #dfb96655}.goals-screen{max-width:560px;margin:auto}

/* One viewport, one independently scrollable trail; no nested page scroll jumps. */
.shell:has(.goals-screen) .main{height:calc(100dvh - 105px);display:flex;flex-direction:column;overflow:hidden}
.shell:has(.goals-screen) .game-header,.shell:has(.goals-screen) .hud-back-row{flex-shrink:0}
.shell:has(.goals-screen) #page{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.shell:has(.goals-screen) .footer{display:none}
.goals-screen{width:100%;flex:1;min-height:0;display:flex;flex-direction:column}
.goal-tabs{flex:none;margin:0 0 8px}.goals-missions,.goals-screen[data-goals-tab=collection]>section{flex:1;min-height:0;overflow:auto}
.pass-banner,.pass-progress,.pass-final,.pass-track-labels,.pass-footer,.pass-next{flex-shrink:0}
.pass-banner{height:90px}.pass-track{flex:1;min-height:80px;max-height:none;overflow-anchor:none;scroll-behavior:auto}
.pass-footer{position:sticky;bottom:0;z-index:3;padding:6px 2px;box-shadow:0 -3px 7px #18362b16}
.pass-progress{margin:7px 0}.pass-cosmetics{flex-shrink:0}.art-reservation-note{position:absolute;right:10px;bottom:10px;font-size:var(--kz-fs-xs);opacity:.7;max-width:85px;text-align:right}
.pass-level b,.pass-lantern b{color:#fff3d9;text-shadow:1px 1px #2d3829;font-weight:900}
.pass-row.milestone .pass-reward{min-height:96px}.pass-reward strong{overflow-wrap:anywhere}
.pass-reward.is-opening{animation:pass-chest .55s ease-out}.pass-row.milestone .pass-reward.ready{box-shadow:0 0 8px #d8aa4340}
.pass-celebration{position:relative;overflow:hidden}.pass-celebration::after{content:'✦';position:absolute;top:12px;right:16px;color:#e4bd68;font-size:var(--kz-fs-xl);animation:pass-pulse 1.8s infinite}
@keyframes pass-chest{30%{transform:scale(1.08);box-shadow:0 0 24px #ffd879}70%{transform:scale(.98)}100%{transform:scale(1)}}
@media(min-width:768px){.shell:has(.goals-screen) .main{height:calc(100dvh - 35px)}}
@media(max-height:700px){.pass-banner{height:64px}.pass-banner h3{font-size:var(--kz-fs-lg)}.pass-final{padding:4px}.pass-final img{height:30px;width:50px}.pass-progress{margin:5px 0}.goal-tabs button{padding:6px 4px}.pass-track-labels{padding:5px 8px}}
@media(prefers-reduced-motion:reduce){.pass-reward.is-opening,.pass-celebration::after{animation:none}}

.hud-objectives-count{position:absolute;right:-5px;top:-5px;z-index:2;border:2px solid #f6e8c7}.season-village-decoration{min-width:26px}.season-village-decoration::after{content:"Decoração da temporada"}

.pass-banner-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.pass-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#172d35b3);pointer-events:none}.pass-banner>div,.pass-banner>span,.pass-banner>.art-reservation-note{z-index:1}.pass-banner>div{left:auto;right:10px;text-align:right}.art-reservation-note{right:auto;left:8px;bottom:auto;top:8px;max-width:110px;text-align:left}.pass-garden-preview{border:3px solid #a5824f;border-radius:var(--kz-r-md);overflow:hidden;max-width:320px;margin:12px auto}.pass-garden-preview canvas{display:block;width:100%}.art-pending-label{font-size:var(--kz-fs-xs);opacity:.8}

.shell:has(.goals-screen) .main{padding-bottom:8px}.shell:has(.goals-screen) #page{padding-bottom:0}.pass-footer{position:relative;bottom:auto}

.pass-banner .art-reservation-note{max-width:none;font-size:var(--kz-fs-xs);top:5px;left:7px}.pass-banner>span{top:20px}.pass-banner h3{font-size:var(--kz-fs-lg)}.season-decoration-reservation{position:absolute;right:8%;bottom:13%;display:flex;align-items:center;gap:4px;font-size:var(--kz-fs-xs);background:#f4e8c9;color:#314839;padding:3px}.season-decoration-reservation img{width:24px;height:24px}

/* Clean pass: art-led header, compact rows, quiet surfaces. */
.goals-screen{font-size:var(--kz-fs-xs);gap:0}.goal-tabs{gap:0;border-bottom:1px solid #8e80644d;margin-bottom:10px}.goal-tabs button{background:transparent;border:0;border-radius:0;box-shadow:none!important;padding:9px 4px;min-height:36px;color:var(--text)}.goal-tabs button.active{background:transparent;color:var(--text);border-bottom:3px solid #b88235}.goal-badge{font-size:var(--kz-fs-xs);padding:1px 4px}
.pass-banner{height:112px;border:0;border-radius:var(--kz-r-md);background:#202d3a}.pass-banner::after{background:linear-gradient(90deg,transparent 30%,#101c2d6b)}.pass-banner>span{top:9px;right:10px;padding:3px 6px;font-size:var(--kz-fs-xs);background:#182438a1}.pass-banner>div{bottom:13px;right:12px;max-width:65%}.pass-banner h3{font-size:var(--kz-fs-lg);line-height:1.05;color:#fff5df}.pass-progress{margin:9px 0;gap:8px;position:relative;min-height:38px}.pass-level{width:30px;height:34px}.pass-level img{width:30px;height:34px;object-fit:contain}.pass-level b{display:none}.pass-progress strong{font-size:var(--kz-fs-xs);display:flex;gap:8px;align-items:center}.pass-progress strong small{font-size:var(--kz-fs-xs);font-weight:400;opacity:.7}.pass-progress progress{height:6px;margin:6px 0 0;width:calc(100% - 25px)}.pass-progress button{position:absolute;right:0;top:8px;border:1px solid #9c8b6860;border-radius:50%;width:22px;height:22px;min-height:22px;background:transparent;box-shadow:none}
.pass-final{border:0;border-radius:var(--kz-r-sm);background:#93804a12;padding:5px 7px;gap:9px;min-height:49px;box-shadow:none!important}.pass-final img{width:59px;height:39px;border-radius:var(--kz-r-sm)}.pass-final strong{font-size:var(--kz-fs-xs)}.pass-final small{font-size:var(--kz-fs-xs);opacity:.7}.pass-track-labels{padding:10px 7px 7px;font-size:var(--kz-fs-xs);font-weight:400;color:var(--text)}.pass-track-labels strong{font-weight:500}.pass-track{padding:0;min-height:85px}.pass-row{gap:6px;grid-template-columns:minmax(0,1fr) 27px minmax(0,1fr);margin:0;min-height:65px;border-top:1px solid #94835e25}.pass-reward,.pass-row.milestone .pass-reward{position:relative;border:0;border-radius:var(--kz-r-sm);min-height:55px;padding:5px 7px;display:grid;grid-template-columns:30px minmax(0,1fr);gap:5px;background:transparent;text-align:left;box-shadow:none}.pass-reward>img{width:28px;height:28px;object-fit:contain}.pass-reward strong{font-size:var(--kz-fs-xs);line-height:1.2;font-weight:600;overflow-wrap:normal}.pass-reward small{position:absolute;bottom:1px;right:6px;font-size:var(--kz-fs-xs)}.pass-reward.ready{background:#b48a3820}.pass-reward.claimed{opacity:.42}.pass-reward.future,.pass-reward.locked{filter:grayscale(.4);opacity:.55}.pass-claim{position:absolute;right:4px;bottom:0;padding:0!important;width:19px;min-height:19px!important;height:19px;font-size:var(--kz-fs-xs) !important;border:0;background:#526d43;color:#fff;border-radius:var(--kz-r-sm);box-shadow:none!important}.pass-lantern img{width:27px;height:34px;object-fit:contain;opacity:.3}.pass-lantern b{inset:10px 0;font-size:var(--kz-fs-xs);color:var(--text);text-shadow:none}.pass-lantern{opacity:1;filter:none}.pass-lantern.current img,.pass-lantern.lit img{opacity:1}.pass-lantern.current b,.pass-lantern.lit b{color:white;text-shadow:1px 1px #493722}.pass-row.milestone{min-height:73px}.pass-row.milestone .pass-reward{background:#af874311}.pass-row.milestone .pass-reward.ready{box-shadow:inset 0 0 0 1px #c6964666}.pass-footer{gap:8px;padding:10px 0 0;background:var(--surface);border-top:1px solid #9c8a6750;box-shadow:none}.pass-footer button{font-size:var(--kz-fs-xs);min-height:37px;padding:6px;box-shadow:none!important;border-radius:var(--kz-r-sm)}.pass-footer button:first-child{background:#3f6049;color:#fff9e9;border:0}.pass-footer button:disabled{opacity:.45}.pass-golden{background:#e9ce90;border:1px solid #b29557;color:#4c3a21}.pass-golden-active{font-size:var(--kz-fs-xs)}.pass-cosmetics{font-size:var(--kz-fs-xs)}.pass-cosmetics summary{padding-top:7px}.pass-next{font-size:var(--kz-fs-xs)}.pass-final-preview img{max-height:200px;object-fit:contain}.pass-celebration img{max-height:220px;object-fit:contain}
@media(max-height:700px){.pass-banner{height:83px}.pass-banner h3{font-size:var(--kz-fs-lg)}.pass-progress{margin:6px 0}.pass-final{min-height:40px}.pass-final img{height:32px;width:48px}}

.pass-footer button:first-child{background:#3f6049!important;color:#fff9e9!important;border:0!important}.pass-footer .pass-golden{background:#e9ce90!important;border:1px solid #b29557!important;color:#4c3a21!important}.pass-reward small[aria-label="Trilha bloqueada"]{font-size:0}.pass-reward small[aria-label="Trilha bloqueada"]::after{content:"🔒";font-size:var(--kz-fs-xs)}.pass-lantern b{font-weight:800;font-size:var(--kz-fs-xs)}

/* Balanced daily/weekly columns, including narrow mobile screens. */
.goals-missions>.outline{margin:0 0 10px;width:100%;min-height:34px}
.mission-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}
.mission-column{min-width:0;padding:10px;border:1px solid #9e916c55;border-radius:var(--kz-r-md);background:var(--surface)}
.mission-column h3{font-size:var(--kz-fs-sm);margin:0;padding:2px 0 9px;border-bottom:2px solid #ba9b6266;text-align:center}
.mission-column .goal-row{position:relative;display:block;padding:12px 0 36px;min-height:135px;box-sizing:border-box}
.mission-column .goal-row:last-child{border-bottom:0}
.mission-column .goal-row strong{font-size:var(--kz-fs-xs);line-height:1.35;min-height:33px;overflow-wrap:break-word}
.mission-column .goal-row small{font-size:var(--kz-fs-xs);line-height:1.5}
.mission-column .goal-row small:last-child{font-weight:700;color:var(--text)}
.mission-column .goal-row>button,.mission-column .goal-row>span{position:absolute;bottom:5px;right:0}
.mission-column .goal-row>button{min-height:27px;padding:4px 9px;font-size:var(--kz-fs-xs);box-shadow:none}
@media(max-width:380px){.mission-columns{gap:7px}.mission-column{padding:8px}.mission-column h3{font-size:var(--kz-fs-xs)}.mission-column .goal-row strong{font-size:var(--kz-fs-xs)}}

.pass-footer{flex-shrink:0;margin:4px 0 0;padding:8px 0;border-top:0;border-bottom:1px solid var(--frame)}

.welcome-calendar-button{background:#203c30 url(/assets/art/passe/welcome-v2.png) center/cover!important;color:#fff4dc!important;min-height:64px!important;border:2px solid #80633d!important;text-shadow:1px 1px 2px #142b22;padding:10px 28%!important}.welcome-calendar-art{height:110px;margin:-4px -4px 12px;background:#203c30 url(/assets/art/passe/welcome-v2.png) center/cover;border-radius:var(--kz-r-md)}.welcome-calendar>img{display:none}.welcome-calendar h3{margin:8px 0}.welcome-calendar .login-calendar{gap:6px}

/* Current progress is visibly distinct from future rewards. */
.pass-progress{padding:8px 10px!important;background:#244536;border:2px solid #d5aa57;border-radius:var(--kz-r-md);color:#fff2d6;gap:9px!important}
.pass-current-heading{display:flex!important;align-items:baseline;gap:8px;line-height:1}.pass-current-heading>span{font-size:var(--kz-fs-xs);color:#f5dfb4}.pass-current-heading>b{font-family:var(--kz-font);font-weight:900;font-size:var(--kz-fs-xl);color:#ffe09a;line-height:1}.pass-current-heading>small{margin-left:auto;font-size:var(--kz-fs-xs);font-weight:400;color:#f5dfb4}
.pass-progress .pass-level{width:30px;height:36px}.pass-progress .pass-level img{width:30px;height:36px}.pass-progress .pass-level b{display:none}.pass-progress button{color:#fff2d6!important}.pass-progress progress{accent-color:#efc261;height:7px;margin:6px 0 0}
.pass-row.current-level{border:2px solid #c99035;border-radius:var(--kz-r-md);padding:4px;background:#e6bd6030;box-shadow:0 0 0 1px #ffe0a3 inset;scroll-margin-top:8px}.pass-row.current-level .pass-lantern b{color:#fff!important;font-size:var(--kz-fs-md);font-weight:900;text-shadow:1px 1px #38240d,-1px -1px #38240d}.pass-row.current-level .pass-reward{opacity:1}.pass-row.current-level .pass-lantern{filter:drop-shadow(0 0 4px #edba4e)!important}
.pass-progress>div:last-child{position:relative;padding-right:22px}.pass-progress button{right:0!important;top:0!important}.pass-current-heading>small{font-size:var(--kz-fs-xs);white-space:nowrap}

/* Reserve the fixed navigation footprint at every viewport width. */
.shell:has(.goals-screen[data-goals-tab=pass]) .main{box-sizing:border-box;height:calc(100dvh - 125px - env(safe-area-inset-bottom))!important;min-height:0;padding-bottom:8px}.goals-screen[data-goals-tab=pass] .pass-track{padding-bottom:14px;scroll-padding-bottom:14px;box-sizing:border-box}

.pass-footer .pass-ready-claim:not(:disabled),.pass-reward .pass-ready-claim{background:#f5c34a!important;color:#432b12!important;border:2px solid #ffe99a!important;box-shadow:0 0 10px #f6bc5180,inset 0 1px #fff4c0!important;animation:pass-claim-glow 1.8s ease-in-out infinite}.pass-ready-claim{position:relative;overflow:hidden}.pass-reward .pass-ready-claim{position:absolute}.pass-ready-claim:not(:disabled)::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#fff6c575 48%,transparent 75%);transform:translateX(-120%);animation:pass-claim-shine 3.5s ease-in-out infinite;pointer-events:none}@keyframes pass-claim-glow{50%{box-shadow:0 0 18px #ffcc6799,inset 0 1px #fff4c0}}@keyframes pass-claim-shine{30%,100%{transform:translateX(120%)}}@media(prefers-reduced-motion:reduce){.pass-ready-claim,.pass-ready-claim::after{animation:none!important}}
