/* PARADISE GYM V303 — Performance UX */
:root{--pg-route-duration:150ms}
.pg-boot-skeleton{min-height:100vh;background:var(--bg,#080810);color:#E8E6F0;display:grid;grid-template-columns:240px minmax(0,1fr);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden}
.pg-boot-side{border-right:1px solid rgba(255,255,255,.07);padding:24px 18px;display:flex;flex-direction:column;gap:14px;background:#0D0D15}.pg-boot-logo{width:42px;height:42px;border-radius:12px;object-fit:cover;margin-bottom:12px}.pg-boot-main{padding:24px 28px;min-width:0}.pg-boot-top{height:54px;display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.pg-boot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.pg-boot-panels{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.pg-sk-line,.pg-sk-pill,.pg-sk-card,.pg-sk-panel{position:relative;overflow:hidden;background:#171722;border:1px solid rgba(255,255,255,.055)}.pg-sk-line:after,.pg-sk-pill:after,.pg-sk-card:after,.pg-sk-panel:after,.pg-section-skeleton-title:after,.pg-section-skeleton-pill:after,.pg-section-skeleton-card:after,.pg-section-skeleton-row:after{content:"";position:absolute;inset:0;transform:translateX(-105%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.065),transparent);animation:pgV303Shimmer 1.3s ease-in-out infinite}.pg-sk-line{display:block;width:84%;height:14px;border-radius:7px}.pg-sk-brand{width:62%;height:20px;margin-bottom:12px}.pg-sk-title{width:190px;height:24px}.pg-sk-pill{width:110px;height:28px;border-radius:999px}.pg-sk-card{height:106px;border-radius:14px;padding:16px}.pg-sk-card i,.pg-sk-card b{display:block;position:relative;z-index:1;background:#222231;border-radius:6px}.pg-sk-card i{width:55%;height:12px;margin-bottom:18px}.pg-sk-card b{width:42%;height:28px}.pg-sk-panel{height:280px;border-radius:16px}.pg-boot-copy{color:#747386;font-size:12px;margin-top:16px;letter-spacing:.02em}
@keyframes pgV303Shimmer{to{transform:translateX(105%)}}
@keyframes pgV303SoftIn{from{opacity:.72}to{opacity:1}}

/* Skeleton de rota: preserva sidebar/topbar enquanto um chunk é carregado. */
.pg-section-skeleton{display:flex;flex-direction:column;gap:14px;min-height:360px;animation:pgV303SoftIn .12s ease-out}.pg-section-skeleton-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.pg-section-skeleton-title,.pg-section-skeleton-pill,.pg-section-skeleton-card,.pg-section-skeleton-row{position:relative;overflow:hidden;background:var(--bg3,#13131d);border:1px solid var(--border,rgba(255,255,255,.08));border-radius:12px}.pg-section-skeleton-title{height:24px;width:min(280px,55%)}.pg-section-skeleton-pill{height:34px;width:120px;border-radius:999px}.pg-section-skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pg-section-skeleton-card{height:92px}.pg-section-skeleton-list{display:flex;flex-direction:column;gap:8px;margin-top:2px}.pg-section-skeleton-row{height:58px}.pg-section-skeleton-copy{font-size:12px;color:var(--muted,#7A7890);margin-top:2px}

/* Transição só em mudança real de seção; sync/re-render não fica piscando. */
#page.pg-route-enter{animation:pgV303RouteIn var(--pg-route-duration) cubic-bezier(.22,.8,.25,1) both}
@keyframes pgV303RouteIn{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}

/* O navegador pode pular pintura de conteúdo extenso fora da viewport. */
.equipment-card,.student-ex-card,.pg-highlight-item,.pg-finance-overdue-item{content-visibility:auto;contain-intrinsic-size:auto 72px}

/* Rodapés progressivos mais claros e fáceis de tocar. */
.pg-students-list-footer,.pg-finance-list-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 4px 2px;color:var(--muted);font-size:12px}.pg-v303-auto-more{position:relative}.pg-v303-auto-more[data-pg-auto-loading="1"]{opacity:.72;pointer-events:none}.pg-v303-auto-more[data-pg-auto-loading="1"]:after{content:"";display:inline-block;width:11px;height:11px;margin-left:7px;vertical-align:-1px;border:2px solid rgba(255,255,255,.25);border-top-color:currentColor;border-radius:50%;animation:pgV303Spin .7s linear infinite}@keyframes pgV303Spin{to{transform:rotate(360deg)}}

@media(max-width:900px){.pg-boot-skeleton{grid-template-columns:190px minmax(0,1fr)}.pg-boot-grid,.pg-section-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pg-boot-panels{grid-template-columns:1fr}.pg-boot-panels .pg-sk-panel:last-child{display:none}}
@media(max-width:768px){.pg-boot-skeleton{display:block}.pg-boot-side{display:none}.pg-boot-main{padding:18px 14px}.pg-boot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pg-sk-card{height:90px}.pg-sk-panel{height:240px}.pg-section-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pg-students-list-footer,.pg-finance-list-footer{flex-direction:column;align-items:stretch;text-align:center}.pg-students-list-footer .btn,.pg-finance-list-footer .btn{width:100%;min-height:44px}}
@media(prefers-reduced-motion:reduce){#page.pg-route-enter,.pg-sk-line:after,.pg-sk-pill:after,.pg-sk-card:after,.pg-sk-panel:after,.pg-section-skeleton-title:after,.pg-section-skeleton-pill:after,.pg-section-skeleton-card:after,.pg-section-skeleton-row:after,.pg-v303-auto-more[data-pg-auto-loading="1"]:after{animation:none!important}}
html[data-pg-perf="constrained"]{--pg-route-duration:90ms}html[data-pg-perf="constrained"] .pg-section-skeleton-row:nth-child(n+5){display:none}
