:root{color-scheme:light;--bg: #f0f8fb;--surface: #ffffff;--border: #d2e6ed;--text: #1a2d35;--muted: #5b7380;--primary: #0891b2;--primary-hover: #0780a0;--primary-strong: #066f8e;--on-accent: #ffffff;--danger: #c1483a;--ok: #5c8a6b;--radius: 20px;--radius-sm: 14px;--radius-pill: 999px;--shadow: 0 2px 8px rgba(15, 50, 65, .06), 0 12px 32px rgba(15, 50, 65, .08);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--fs-xs: .72rem;--fs-sm: .85rem;--fs-base: 1rem;--fs-lg: 1.15rem;--fs-xl: 1.4rem;--input-bg: #f0f8fb;--accent-soft: #dceff6;--ring: #b0d8e8;--danger-soft: #f7e3de;--danger-border: #f3c9be;--ok-soft: #e8f0e9;--ok-border: #cfe4d4;--neutral-soft: #edf1f3;--neutral-text: #6b7c84;--info-soft: #e6eff5;--info-text: #52798e}[data-theme=dark]{color-scheme:dark;--bg: #121f26;--surface: #182b34;--border: #2a4150;--text: #e2eef3;--muted: #94b3c0;--primary: #0e9ab5;--primary-hover: #12b0ce;--primary-strong: var(--primary);--on-accent: #ffffff;--danger: #e2776a;--ok: #7fc190;--shadow: 0 2px 8px rgba(0, 0, 0, .3), 0 16px 40px rgba(0, 0, 0, .4);--input-bg: #121f26;--accent-soft: rgba(14, 154, 181, .18);--ring: rgba(14, 154, 181, .45);--danger-soft: rgba(226, 119, 106, .16);--danger-border: #5a3f37;--ok-soft: rgba(127, 193, 144, .14);--ok-border: #3d5645;--neutral-soft: #242e34;--neutral-text: #a8b9c2;--info-soft: #1c2e38;--info-text: #7ec0d8}[data-theme=dark] .field-inline select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 256 256'%3E%3Cpath d='M213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32z' fill='%2394b3c0'/%3E%3C/svg%3E")}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;transition:background-color .3s ease,color .3s ease}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.25}.container{width:100%;max-width:960px;margin:0 auto;padding:1.5rem 1rem}.app-header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.app-header__inner{max-width:960px;margin:0 auto;padding:.75rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.15rem;color:var(--text);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.brand:hover{text-decoration:none}.brand:hover .brand-icon{animation:bicep-curl .5s cubic-bezier(.34,1.56,.64,1)}@keyframes bicep-curl{0%{transform:translateY(0)}30%{transform:translateY(-4px) scale(1.08)}50%{transform:translateY(-2px) scale(1.12)}70%{transform:translateY(-4px) scale(1.08)}to{transform:translateY(0)}}.brand-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:999px;background:var(--primary);color:var(--on-accent);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.nav{display:flex;gap:.25rem;flex-wrap:wrap;flex:1}.nav a{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);padding:.35rem .6rem;border-radius:999px;font-size:.92rem;white-space:nowrap;transition:transform .4s cubic-bezier(.34,1.56,.64,1),background-color .2s ease,color .2s ease}.nav a svg{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.nav a:hover{text-decoration:none;background:var(--bg);color:var(--text)}.nav a[href="/schedule"]:hover svg{animation:calendar-leaf .4s ease}@keyframes calendar-leaf{0%{transform:rotate(0)}25%{transform:rotate(-12deg) translateY(-2px)}50%{transform:rotate(8deg)}75%{transform:rotate(-4deg)}to{transform:rotate(0)}}.nav a[href="/my-bookings"]:hover svg{animation:ticket-punch .35s ease}@keyframes ticket-punch{0%,to{transform:scale(1)}40%{transform:scale(.85) rotate(-8deg)}70%{transform:scale(1.1) rotate(2deg)}}.nav a[href="/my-programs"]:hover svg,.nav a[href="/programs"]:hover svg{animation:barbell-bounce .4s cubic-bezier(.34,1.56,.64,1)}@keyframes barbell-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-3px)}60%{transform:translateY(1px)}}.nav a[href="/my-assessments"]:hover svg,.nav a[href="/assessments"]:hover svg{animation:chart-draw .5s ease forwards}@keyframes chart-draw{0%{clip-path:inset(0 100% 0 0);transform:scale(1)}to{clip-path:inset(0 0 0 0);transform:scale(1.1)}}@media(prefers-reduced-motion:reduce){.brand:hover .brand-icon{animation:none}.nav a[href="/my-assessments"]:hover svg,.nav a[href="/assessments"]:hover svg{animation:none}}.nav a[href="/my-sessions"]:hover svg{animation:group-wave .45s ease}@keyframes group-wave{0%,to{transform:translate(0)}25%{transform:translate(-2px) rotate(-5deg)}75%{transform:translate(2px) rotate(5deg)}}.nav a[href="/feedback"]:hover svg{animation:speech-pulse .4s ease}@keyframes speech-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.nav a[href="/admin"]:hover svg{transform:rotate(90deg)}.nav a[href="/rankings"]:hover svg{animation:podium-rise .4s cubic-bezier(.34,1.56,.64,1)}@keyframes podium-rise{0%{transform:translateY(0)}50%{transform:translateY(-4px) scale(1.15)}to{transform:translateY(0)}}.nav a:active{transform:scale(.95)}.nav a.active{color:var(--primary);background:var(--accent-soft);font-weight:600}.header-user{display:flex;align-items:center;gap:.6rem;font-size:.9rem}.header-user .btn-icon{transition:transform .4s cubic-bezier(.34,1.56,.64,1),background-color .2s ease,color .2s ease}.header-user .btn-icon svg{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.header-user .btn-icon[aria-label=Conta]:hover svg{animation:nod .5s ease}@keyframes nod{0%,to{transform:translateY(0)}30%{transform:translateY(-2px)}60%{transform:translateY(1px)}}.header-user .btn-theme-toggle:hover svg{transform:rotate(360deg);transition:transform .6s cubic-bezier(.34,1.56,.64,1)}.header-user .btn-icon[aria-label=Sair]:hover svg{transform:translate(3px)}.header-user .btn-icon[aria-label="Trocar de condomínio"]:hover svg{animation:building-sway .5s ease}@keyframes building-sway{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.header-user .btn-icon:active{transform:scale(.9)}.header-user .btn-ghost:hover,.header-user .btn-ghost[aria-label]:hover{background:var(--bg);color:var(--text);text-decoration:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;overflow:hidden}.card+.card{margin-top:1rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.card-grid>.card+.card{margin-top:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:inherit;font-weight:600;padding:.55rem .95rem;border-radius:999px;border:1px solid transparent;cursor:pointer;background:var(--bg);color:var(--text);transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 14px #0891b24d}.btn-primary:active:not(:disabled){transform:translateY(0) scale(.97);box-shadow:0 1px 4px #0891b233}.btn-ghost{background:transparent;border-color:var(--border);color:var(--muted)}.btn-ghost:hover:not(:disabled){background:var(--bg);color:var(--text)}.btn-ghost:active:not(:disabled){transform:scale(.97)}.btn-block{width:100%}.btn-login{position:relative;overflow:hidden;transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease,background-color .2s ease}.btn-login:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #0891b259}.btn-login:hover:not(:disabled) .btn-login__arrow{transform:translate(4px)}.btn-login__arrow{display:inline-flex;align-items:center;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:btn-spin .6s linear infinite;margin-right:2px}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-pill);flex-shrink:0}.btn-icon-sm{width:2rem;height:2rem;padding:0;border-radius:var(--radius-pill);flex-shrink:0}.btn-theme-toggle{transition:transform .4s cubic-bezier(.34,1.56,.64,1),background-color .2s ease}.btn-theme-toggle:active{transform:scale(.9)}.field{margin-bottom:1rem}.field label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.3rem;color:var(--text)}.field input{width:100%;font:inherit;padding:.55rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--input-bg);color:var(--text)}.field input:focus{outline:2px solid var(--ring);border-color:var(--primary)}.field input[aria-invalid=true],.field input[aria-invalid=true]:focus{border-color:var(--danger);outline-color:var(--danger-border)}.field input[data-valid=true],.field input[data-valid=true]:focus{border-color:var(--ok);outline-color:var(--ok-border)}.auth-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem}.auth-card{width:100%;max-width:400px}.auth-card h1{display:flex;align-items:center;gap:.6rem;margin:0 0 .25rem;font-size:1.4rem}.landing{--landing-ink: #182b27;--landing-muted: #62716b;--landing-accent: #0891b2;--landing-sand: #f9f5ee;--landing-mint: #e5f0e9;min-height:100%;overflow:hidden;background:#fffdf9;color:var(--landing-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.landing a{color:inherit}.landing-header{width:min(1180px,calc(100% - 40px));height:88px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.landing-brand{display:inline-flex;align-items:center;gap:9px;color:var(--landing-ink);font-size:1.05rem;font-weight:800;letter-spacing:-.04em}.landing-brand:hover{text-decoration:none}.landing-brand__mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:11px;background:var(--landing-accent);color:#fff}.landing-nav{display:flex;gap:30px;margin-left:auto}.landing-nav a,.landing-login{color:#56645e;font-size:.9rem;font-weight:650;text-decoration:none}.landing-nav a:hover{color:var(--landing-ink);text-decoration:none}.landing-login{display:inline-flex;align-items:center;gap:7px;color:var(--landing-ink)}.landing-login:hover{color:var(--landing-accent);text-decoration:none}.landing-hero{width:min(1180px,calc(100% - 40px));min-height:610px;margin:0 auto;padding:70px 0 92px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:52px}.landing-eyebrow{display:flex;align-items:center;gap:9px;margin:0 0 17px;color:#68766f;font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.landing-eyebrow span{width:22px;height:2px;background:var(--landing-accent)}.landing-hero h1,.landing-intro h2,.landing-showcase h2,.landing-cta h2{margin:0;font-family:Georgia,Times New Roman,serif;font-weight:500;letter-spacing:-.055em}.landing-hero h1{max-width:560px;font-size:clamp(3.4rem,6.2vw,5.5rem);line-height:.95}.landing-lead{max-width:475px;margin:28px 0;color:var(--landing-muted);font-size:1.1rem;line-height:1.65}.landing-actions{display:flex;flex-wrap:wrap;align-items:center;gap:13px}.landing-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:49px;padding:0 22px;border-radius:999px;font-size:.9rem;font-weight:750;text-decoration:none;transition:transform .2s ease,background .2s ease}.landing-button:hover{transform:translateY(-2px);text-decoration:none}.landing-button--primary{background:var(--landing-accent);color:#fff;box-shadow:0 12px 25px #0891b238}.landing-button--primary:hover{background:#0780a0;color:#fff}.landing-button--quiet{color:var(--landing-ink)}.landing-trust{display:flex;align-items:center;gap:12px;margin-top:38px}.landing-trust p{margin:0;color:var(--landing-muted);font-size:.79rem;line-height:1.4}.landing-trust strong{color:var(--landing-ink)}.landing-avatars{display:flex;padding-left:8px}.landing-avatars span{display:grid;place-items:center;width:29px;height:29px;margin-left:-8px;border:2px solid #fffdf9;border-radius:50%;background:#b4c8bb;color:#fff;font-size:.54rem;font-weight:800}.landing-avatars span:nth-child(2){background:#6abac8}.landing-avatars span:nth-child(3){background:#7e9990}.landing-hero__visual{position:relative;min-height:485px;display:grid;place-items:center}.landing-orbit{position:absolute;width:470px;height:470px;border-radius:50%;background:var(--landing-mint)}.landing-orbit--one{transform:translate(18px,4px)}.landing-orbit--two{width:365px;height:365px;background:#d3e5da;transform:translate(-24px,-32px)}.landing-resident-preview{position:relative;z-index:1;width:min(490px,94%);overflow:hidden;border:7px solid #19332e;border-radius:18px;background:#19332e;box-shadow:0 27px 45px #1f40353d;transform:rotate(3deg)}.landing-resident-preview__bar{display:flex;align-items:center;gap:5px;height:29px;padding:0 10px;color:#c5d3cd}.landing-resident-preview__bar span{width:6px;height:6px;border-radius:50%;background:#6f8c81}.landing-resident-preview__bar small{margin-left:5px;font-size:.52rem;letter-spacing:.03em}.landing-resident-preview__mock{display:flex;flex-direction:column;gap:8px;padding:14px;background:var(--bg)}.landing-floating{position:absolute;z-index:2;display:flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid rgba(255,255,255,.65);border-radius:13px;background:#fffdf9eb;box-shadow:0 12px 24px #2d4a3e21}.landing-floating strong,.landing-floating small{display:block}.landing-floating strong{font-size:.67rem}.landing-floating small{color:#77847d;font-size:.55rem}.landing-floating--session{top:65px;left:18px}.landing-floating--session .landing-floating__icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#dceff6;color:var(--landing-accent)}.landing-floating--hours{right:8px;bottom:66px;color:#4e8064}.landing-impact{display:grid;grid-template-columns:repeat(3,1fr);width:min(1180px,calc(100% - 40px));margin:0 auto;border-top:1px solid #e6e6de;border-bottom:1px solid #e6e6de}.landing-impact div{display:flex;align-items:center;justify-content:center;gap:13px;min-height:103px;color:#31483e;font-family:Georgia,serif;font-size:1.13rem;letter-spacing:-.025em}.landing-impact div+div{border-left:1px solid #e6e6de}.landing-impact svg{color:var(--landing-accent)}.landing-intro{width:min(950px,calc(100% - 40px));margin:0 auto;padding:135px 0 65px}.landing-intro>div{display:grid;grid-template-columns:1.05fr .95fr;gap:75px}.landing-intro h2{font-size:clamp(2.3rem,4.2vw,3.7rem);line-height:1.03}.landing-intro p:last-child{margin:7px 0 0;color:var(--landing-muted);font-size:1.05rem;line-height:1.75}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;width:min(1180px,calc(100% - 40px));margin:0 auto 142px}.landing-feature{min-height:285px;padding:29px;border:1px solid #e6e5dd;border-radius:18px;background:#fff}.landing-feature__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#dceff6;color:var(--landing-accent)}.landing-feature h3{margin:26px 0 9px;font-size:1.03rem;letter-spacing:-.025em}.landing-feature p{max-width:270px;margin:0;color:var(--landing-muted);font-size:.9rem;line-height:1.65}.landing-feature__line{display:block;width:32px;height:2px;margin-top:24px;background:#b8cbbf}.landing-showcase{padding:114px max(20px,calc((100% - 1180px)/2));background:var(--landing-sand)}.landing-showcase__heading{max-width:620px;margin-bottom:48px}.landing-showcase h2{font-size:clamp(2.5rem,4.6vw,4rem);line-height:1}.landing-showcase__heading>p:last-child{max-width:510px;margin:18px 0 0;color:var(--landing-muted);font-size:1rem;line-height:1.7}.landing-screenshots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:28px}.landing-shot{margin:0}.landing-shot__browser{display:flex;align-items:center;gap:5px;height:25px;padding:0 11px;border:1px solid #d7d4ca;border-bottom:0;border-radius:11px 11px 0 0;background:#ebe9e0}.landing-shot__browser span{width:6px;height:6px;border-radius:50%;background:#c9c4b8}.landing-shot__mock{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid #d7d4ca;background:var(--bg);box-shadow:0 23px 38px #3b3a3021}.landing-mock-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--border);font-size:.78rem}.landing-mock-row--active{border-color:var(--primary);background:var(--accent-soft)}.landing-mock-row--muted{color:var(--muted);font-style:italic}.landing-mock-row__time{font-weight:700;color:var(--text)}.landing-mock-row__label{flex:1;color:var(--text);font-weight:600}.landing-mock-row__badge{padding:3px 8px;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-size:.65rem;font-weight:700;text-transform:uppercase}.landing-mock-row__cta{width:46px;height:20px;border-radius:999px;background:var(--primary);opacity:.85}.landing-mock-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.landing-mock-stats>div{padding:10px;border-radius:10px;background:var(--surface);border:1px solid var(--border)}.landing-mock-stats strong{display:block;font-size:1.3rem;color:var(--text)}.landing-mock-stats small{color:var(--muted);font-size:.65rem}.landing-shot figcaption{padding:18px 4px 0;color:#657169;font-size:.89rem}.landing-shot figcaption span{display:block;margin-bottom:3px;color:var(--landing-accent);font-size:.69rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.landing-shot--admin{transform:none}.landing-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;width:min(1180px,calc(100% - 40px));margin:0 auto;padding:120px 0}.landing-cta h2{max-width:650px;font-size:clamp(2.55rem,4.6vw,4.25rem);line-height:1}.landing-footer{display:flex;align-items:center;justify-content:space-between;width:min(1180px,calc(100% - 40px));margin:0 auto;padding:28px 0;border-top:1px solid #e6e6de}.landing-footer p{margin:0;color:#7b8780;font-size:.76rem}.landing-footer__contact{color:var(--primary);font-size:.85rem;font-weight:500;text-decoration:none}.landing-footer__contact:hover{text-decoration:underline}@media(max-width:760px){.landing-header{height:74px;width:min(100% - 28px,1180px)}.landing-nav{display:none}.landing-login{font-size:.84rem}.landing-hero{width:min(100% - 40px,1180px);min-height:0;padding:47px 0 62px;grid-template-columns:1fr;gap:28px}.landing-hero h1{font-size:clamp(3.2rem,15vw,4.5rem)}.landing-lead{margin:22px 0;font-size:1rem}.landing-hero__visual{min-height:420px}.landing-orbit{width:385px;height:385px}.landing-orbit--two{width:300px;height:300px}.landing-resident-preview{transform:rotate(2deg)}.landing-floating--session{top:35px;left:0}.landing-floating--hours{right:0;bottom:36px}.landing-impact{grid-template-columns:1fr}.landing-impact div{min-height:73px;justify-content:flex-start;padding-left:13%}.landing-impact div+div{border-left:0;border-top:1px solid #e6e6de}.landing-intro{padding:88px 0 44px}.landing-intro>div{grid-template-columns:1fr;gap:20px}.landing-features{grid-template-columns:1fr;margin-bottom:85px}.landing-feature{min-height:0}.landing-showcase{padding-top:80px;padding-bottom:80px}.landing-screenshots{grid-template-columns:1fr;gap:19px}.landing-shot--admin{width:82%;transform:none}.landing-cta{flex-direction:column;align-items:flex-start;padding:83px 0}.landing-footer{width:min(100% - 40px,1180px)}.landing-footer p{display:none}}.muted{color:var(--muted)}.badge{display:inline-block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;padding:.15rem .45rem;border-radius:999px;background:var(--accent-soft);color:var(--primary)}.badge-accent{background:var(--accent-soft);color:var(--primary)}.badge-neutral{background:var(--neutral-soft);color:var(--neutral-text)}.badge-info{background:var(--info-soft);color:var(--info-text)}.badge-success{background:var(--ok-soft);color:var(--ok)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.alert{padding:.6rem .8rem;border-radius:14px;font-size:.9rem;margin-bottom:1rem}.alert-error{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-border)}.alert-ok{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-border)}.loading{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:1rem}.loading__spinner{position:relative;display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px}.loading__ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid var(--border);border-top-color:var(--primary);animation:loading-spin .8s linear infinite}.loading__logo{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:999px;background:var(--primary);color:var(--on-accent);animation:loading-logo 1.6s ease-in-out infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-logo{0%,50%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading__ring,.loading__logo{animation:none}}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th{text-align:left;color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.02em;padding:.5rem .6rem;border-bottom:1px solid var(--border)}.table td{padding:.55rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background-color .15s ease}.table tbody tr:hover{background:var(--bg)}.table-wrap{overflow-x:auto}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem;gap:.4rem}.empty-state__icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:999px;background:var(--accent-soft);color:var(--primary);margin-bottom:.4rem}.empty-state__title{font-weight:600;margin:0}.empty-state__desc{margin:0 0 .6rem;max-width:32ch}.subnav{display:flex;gap:.35rem;margin-bottom:1.25rem;flex-wrap:wrap}.subnav a{padding:.5rem .8rem;color:var(--muted);border-radius:999px;font-weight:600}.subnav a:hover{text-decoration:none;background:var(--bg);color:var(--text)}.subnav a.active{color:var(--on-accent);background:var(--primary-strong)}.row-form{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}.field-inline{display:flex;flex-direction:column}.field-inline label{font-size:.78rem;font-weight:600;margin-bottom:.2rem;color:var(--muted)}.field-inline input,.field-inline select{font:inherit;padding:.45rem .6rem;height:2.2rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);transition:border-color .2s ease,box-shadow .2s ease}.field-inline select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2rem;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 256 256'%3E%3Cpath d='M213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32z' fill='%235b7380'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:12px}.field-inline select:hover{border-color:var(--primary)}.field-inline select:focus{outline:2px solid var(--ring);border-color:var(--primary)}.field-inline input:disabled,.field-inline select:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.field-inline input[type=color]{padding:.2rem .3rem;width:56px;height:2.2rem;cursor:pointer}.field-inline .chk{height:2.2rem}.time-range{display:flex;align-items:center;gap:.5rem}.time-range input{min-width:0;flex:1}.time-range__sep{color:var(--muted);font-size:.8rem;flex-shrink:0}.field-inline textarea{font:inherit;padding:.45rem .6rem;border:1px solid var(--border);border-radius:14px;background:var(--input-bg);color:var(--text)}.invite-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:end}.invite-form .field-inline{min-width:0}.invite-form .btn{height:2.2rem}.inline-actions{display:flex;gap:.4rem;flex-wrap:wrap}.filter-bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:.6rem .9rem;margin-bottom:1rem}.trainer-filter .field-inline{flex:1;min-width:220px}.btn-sm{padding:.3rem .6rem;font-size:.85rem}.btn-danger{color:var(--danger);border-color:var(--danger-border);background:var(--surface)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-danger:active:not(:disabled){transform:scale(.95)}.btn-danger-filled{color:var(--on-accent);background:var(--danger);border-color:var(--danger)}.btn-danger-filled:hover:not(:disabled){opacity:.9}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:#08141c73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:modal-overlay-fade .2s ease-out}@keyframes modal-overlay-fade{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:26rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;animation:modal-spring-in .3s cubic-bezier(.16,1,.3,1)}@keyframes modal-spring-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal--wide{max-width:46rem}.modal__title{margin:0 0 .5rem;font-size:1.1rem}.modal__message{color:var(--muted);margin-bottom:1.5rem}.modal__actions{display:flex;justify-content:flex-end;gap:.5rem}.modal__options{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.modal__options .btn{justify-content:center;gap:.5rem}.metric-chart{display:block;width:100%;padding:1rem;color:inherit;text-align:left;cursor:zoom-in}.metric-chart:hover{border-color:var(--primary)}.metric-chart:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.metric-chart__expanded svg{display:block;width:100%}.metric-chart__point{cursor:pointer}.metric-chart__point:focus{outline:none;stroke:var(--text);stroke-width:2}.metric-chart__history{max-height:14rem}.table-row--highlight{background:var(--accent-soft)}.exercise-list{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.exercise-item{padding:.6rem .75rem;background:var(--bg);border-radius:calc(var(--radius) - 8px);border:1px solid var(--border)}.exercise-item__name{font-weight:600;font-size:.92rem}.exercise-item__meta{color:var(--muted);font-size:.82rem;margin-top:.15rem}.exercise-item__notes{font-size:.8rem;font-style:italic;color:var(--muted);margin-top:.25rem}.session-row__cal{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.25rem;height:2.25rem;padding:0;border-radius:999px;color:var(--primary);background:var(--surface);border-color:var(--primary)}.session-row__cal:hover:not(:disabled){background:var(--accent-soft);border-color:var(--primary);color:var(--primary-hover)}.choice-chips{display:flex;flex-wrap:wrap;gap:.5rem}.choice-chip{position:relative;display:inline-flex;align-items:center;gap:.45rem;min-height:2.2rem;padding:.3rem .75rem .3rem .65rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer;font-size:.88rem;-webkit-user-select:none;user-select:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s cubic-bezier(.34,1.56,.64,1)}.choice-chip:hover{border-color:var(--primary)}.choice-chip:focus-within{outline:2px solid var(--ring);outline-offset:2px}.choice-chip__input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:pointer}.choice-chip__icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:999px;border:1px solid currentColor;flex-shrink:0;opacity:.35;transform:scale(.9);transition:opacity .2s ease,transform .2s ease}.choice-chip--checked{background:var(--primary);border-color:var(--primary);color:var(--on-accent)}.choice-chip--checked .choice-chip__icon{opacity:1;transform:scale(1)}.choice-chip:active{transform:scale(.98)}.trainer-card__head{align-items:flex-start}.trainer-card__title{display:flex;flex-direction:column;gap:.25rem;min-width:0}.trainer-card__name{display:flex;align-items:center;gap:.5rem;margin:0}.trainer-card__email{color:var(--muted);font-size:.85rem}@media(max-width:640px){.invite-form{grid-template-columns:1fr}.invite-form .btn{width:100%}}.likert{display:flex;gap:.4rem}.likert__opt{flex:1;min-width:34px;padding:.45rem 0;font:inherit;font-weight:600;border:1px solid var(--border);border-radius:999px;background:var(--input-bg);color:var(--text);cursor:pointer}.likert__opt--on{background:var(--primary);border-color:var(--primary);color:var(--on-accent)}.likert__ends{display:flex;justify-content:space-between;font-size:.72rem;margin-top:.2rem}.meter{height:8px;border-radius:999px;background:var(--accent-soft);overflow:hidden}.meter__fill{height:100%;background:var(--primary)}.rankings-podium{display:flex;justify-content:center;align-items:flex-end;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.rankings-podium__item{display:flex;flex:0 1 150px;flex-direction:column;align-items:center;order:3;gap:.3rem;min-width:0;padding:.9rem .75rem .85rem;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.rankings-podium__item--1{order:2;padding:1.6rem .75rem 1.25rem;border-color:var(--primary);background:linear-gradient(180deg,var(--accent-soft),var(--surface) 70%)}.rankings-podium__item--2{order:1;padding:1.15rem .75rem 1.05rem}.rankings-podium__medal{font-size:1.4rem;line-height:1}.rankings-podium__item--2 .rankings-podium__medal{font-size:1.75rem}.rankings-podium__item--1 .rankings-podium__medal{font-size:2.1rem}.rankings-podium__avatar{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background:var(--neutral-soft);color:var(--neutral-text);font-weight:700;font-size:.92rem;flex-shrink:0}.rankings-podium__item--2 .rankings-podium__avatar{width:2.9rem;height:2.9rem;font-size:1.05rem}.rankings-podium__item--1 .rankings-podium__avatar{width:3.4rem;height:3.4rem;background:var(--primary);color:var(--on-accent);font-size:1.2rem}.rankings-podium__name{max-width:100%;overflow:hidden;font-weight:600;font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.rankings-podium__item--1 .rankings-podium__name{font-size:.95rem}.rankings-podium__apt{font-size:.76rem}.rankings-podium__points{font-weight:700;font-size:1rem;color:var(--primary)}.rankings-podium__item--1 .rankings-podium__points{font-size:1.15rem}.rankings-row{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem}.rankings-row--me{border-color:var(--primary);background:var(--accent-soft)}.rankings-row--me-emphasis{border:1px solid var(--primary);background:linear-gradient(90deg,var(--accent-soft),var(--surface) 65%)}.rankings-row--me-emphasis .rankings-row__rank{color:var(--primary);font-size:1.05rem}.rankings-list__gap{margin:.5rem 0;padding:.15rem 0;color:var(--muted);text-align:center;letter-spacing:.3em}.rankings-row__rank{flex-shrink:0;width:1.5rem;color:var(--muted);font-weight:600;text-align:center}.rankings-row__avatar{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:999px;background:var(--accent-soft);color:var(--primary);font-weight:700;font-size:.76rem}.rankings-row__info{flex:1;min-width:0}.rankings-row__name{overflow:hidden;font-size:.92rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.rankings-row__apt{font-size:.78rem}.rankings-row__meter{flex-shrink:0;width:90px}.rankings-row__points{flex-shrink:0;width:3.25rem;font-weight:700;text-align:right}.rankings-filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;padding:.75rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:14px}.rankings-period-group{display:inline-flex;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:999px}.rankings-period-group .btn{border-radius:999px}.field-inline select.ranking-filter--active{border-color:var(--primary);color:var(--primary)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.section-head h2{margin:0;font-size:1.05rem}.stat .num{font-size:1.9rem;font-weight:700;line-height:1}.stat__head{display:inline-flex;align-items:center;gap:.55rem}.stat__icon{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border-radius:999px;background:var(--accent-soft);color:var(--primary)}.stat .label{color:var(--text);opacity:.78;font-size:.85rem;margin-top:.3rem;font-weight:600}.token-box{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;word-break:break-all;background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:.5rem .6rem}.day-chip{display:inline-block;font-size:.8rem;font-weight:600;color:var(--primary);background:var(--accent-soft);padding:.3rem .8rem;border-radius:999px;margin:0 0 .6rem}.schedule-filters{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.85rem}.filter-chip-row{display:flex;align-items:center;gap:.4rem;min-width:0;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:none;-ms-overflow-style:none}.filter-chip-row__label{flex:0 0 auto;color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.02em;padding-right:.25rem}.filter-chip-row::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);padding:.35rem .85rem;font:inherit;font-size:.85rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s cubic-bezier(.34,1.56,.64,1)}.filter-chip:hover{border-color:var(--primary);color:var(--text)}.filter-chip:active{transform:scale(.96)}.filter-chip--active,.filter-chip--active:hover{background:var(--primary);border-color:var(--primary);color:var(--on-accent)}.date-carousel{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.35rem;margin-bottom:1.25rem;scrollbar-width:none;-ms-overflow-style:none}.date-carousel::-webkit-scrollbar{display:none}.date-chip{flex:0 0 auto;display:inline-flex;flex-direction:column;align-items:center;gap:2px;min-width:3.1rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .15s cubic-bezier(.34,1.56,.64,1)}.date-chip:hover{border-color:var(--primary)}.date-chip:active{transform:scale(.95)}.date-chip__weekday{font-size:.68rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.date-chip__day{font-size:1.05rem;font-weight:700;line-height:1}.day-group{scroll-margin-top:5rem}.session-row__book{gap:.5rem}.session-row__slots{font-size:.75rem;font-weight:600;opacity:.85;padding-left:.5rem;border-left:1px solid currentColor;white-space:nowrap}.session-manage-row{display:flex;gap:1rem;align-items:center;padding:.75rem 1rem}.session-manage-row__main{flex:1;min-width:0}.session-row{display:flex;gap:1rem;padding:.85rem 1rem;align-items:center}.session-row__time{min-width:110px;font-variant-numeric:tabular-nums}.session-row__main{flex:1;min-width:0}.session-row__action{text-align:right;font-size:.85rem;min-width:120px}.session-row--booked{box-shadow:inset 3px 0 0 var(--ok);background:var(--ok-soft)}.session-row--full{box-shadow:inset 3px 0 0 var(--danger);background:var(--danger-soft)}.session-row__actions{display:inline-flex;gap:8px;align-items:center;justify-content:flex-end}.toast-region{position:fixed;z-index:200;bottom:var(--space-4);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--space-2);width:min(24rem,calc(100vw - 2 * var(--space-4)));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);box-shadow:var(--shadow);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--fs-sm);pointer-events:auto;position:relative;overflow:hidden;animation:toast-spring-in .3s cubic-bezier(.16,1,.3,1)}.toast__progress{position:absolute;bottom:0;left:0;height:3px;background:currentColor;opacity:.35;width:100%;animation:toast-timer 4s linear forwards}@keyframes toast-timer{0%{width:100%}to{width:0%}}.toast--success{background:var(--ok-soft);border-color:var(--ok-border);color:var(--ok)}.toast--error{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.toast__msg{flex:1}.toast__close{background:none;border:none;color:inherit;cursor:pointer;padding:0;opacity:.7;display:inline-flex}.toast__close:hover{opacity:1}@keyframes toast-spring-in{0%{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.badge-pop{animation:badge-pop-in .85s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes badge-pop-in{0%{opacity:0;transform:scale(.4)}60%{transform:scale(1.22)}to{opacity:1;transform:scale(1)}}.session-row--just-booked{animation:row-flash-green 1.8s cubic-bezier(.16,1,.3,1) forwards}@keyframes row-flash-green{0%{background-color:#5c8a6b59;box-shadow:inset 6px 0 0 var(--ok)}50%{background-color:#5c8a6b33;box-shadow:inset 4px 0 0 var(--ok)}to{background-color:var(--ok-soft);box-shadow:inset 3px 0 0 var(--ok)}}.session-row--just-canceled{animation:row-flash-red 1.6s cubic-bezier(.16,1,.3,1) forwards}@keyframes row-flash-red{0%{background-color:#c1483a4d;box-shadow:inset 6px 0 0 var(--danger)}to{background-color:transparent;box-shadow:none}}.confetti-container{position:relative;display:inline-flex;align-items:center}.confetti-dot{position:absolute;width:6px;height:6px;border-radius:50%;pointer-events:none;opacity:0}.confetti-dot--1{background:var(--primary);animation:confetti-p1 1.2s cubic-bezier(.25,1,.5,1) forwards}.confetti-dot--2{background:var(--ok);animation:confetti-p2 1.2s cubic-bezier(.25,1,.5,1) forwards}.confetti-dot--3{background:#b0d8e8;animation:confetti-p3 1.2s cubic-bezier(.25,1,.5,1) forwards}.confetti-dot--4{background:#0e9ab5;animation:confetti-p4 1.2s cubic-bezier(.25,1,.5,1) forwards}.confetti-dot--5{background:#7fc190;animation:confetti-p5 1.2s cubic-bezier(.25,1,.5,1) forwards}@keyframes confetti-p1{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-18px,-24px) scale(.2)}}@keyframes confetti-p2{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(18px,-26px) scale(.2)}}@keyframes confetti-p3{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-22px,12px) scale(.2)}}@keyframes confetti-p4{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(22px,14px) scale(.2)}}@keyframes confetti-p5{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translateY(-28px) scale(.2)}}.slot-count-flip{display:inline-block;transition:transform .3s ease,color .3s ease}.slot-count-flip--animating{animation:slot-flip-key .75s cubic-bezier(.34,1.56,.64,1)}@keyframes slot-flip-key{0%{transform:scale(1)}40%{transform:scale(1.35) translateY(-3px);color:var(--primary)}to{transform:scale(1)}}.stamp-attended{animation:stamp-bounce .45s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes stamp-bounce{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.staggered-fade-in{animation:staggered-slide .35s cubic-bezier(.16,1,.3,1) both}@keyframes staggered-slide{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.app-header__inner{gap:.5rem;padding:.75rem .5rem}.header-user{margin-left:auto;gap:.25rem}.nav{position:fixed;bottom:0;left:0;right:0;z-index:20;order:initial;flex-basis:auto;flex-grow:0;gap:0;flex-wrap:nowrap;justify-content:space-around;background:var(--surface);border-top:1px solid var(--border);padding:.3rem .25rem calc(.3rem + env(safe-area-inset-bottom));box-shadow:0 -2px 12px #0f32410f}.nav a{flex:1 1 0;flex-direction:column;gap:2px;padding:.3rem .15rem;font-size:.62rem;font-weight:600;text-align:center;line-height:1.1;border-radius:12px;min-width:0;white-space:normal}.nav a svg{width:22px;height:22px}.nav a:hover,.nav a:hover svg{transform:none;animation:none}.nav a.active{background:transparent}.container{padding-bottom:5.5rem}.toast-region{bottom:calc(4.5rem + env(safe-area-inset-bottom))}.session-manage-row{flex-wrap:wrap;align-items:flex-start;row-gap:.5rem}.session-manage-row__main{flex-basis:100%}.session-row{flex-direction:column;align-items:stretch;gap:.35rem;padding:.75rem 1rem}.session-row__time{min-width:0;font-size:.8rem;color:var(--muted);font-weight:500}.session-row__main{flex:unset}.session-row__action{min-width:0;text-align:unset;margin-top:.25rem}.session-row__actions{width:100%;justify-content:stretch}.session-row__actions>button,.session-row__actions>a{flex:1;justify-content:center}.session-row__actions>.session-row__cal{flex:0 0 auto}.rankings-row__meter{display:none}.rankings-podium{gap:.5rem}.rankings-podium__item{flex-basis:100px;padding:.85rem .5rem .75rem}.rankings-podium__item--1{padding-top:1.25rem}.rankings-podium__item--2{padding-top:1.05rem}.rankings-filters{justify-content:center}}.condo-switcher{position:relative;flex-shrink:0}.condo-switcher--open .condo-switcher__trigger{background:var(--accent-soft);color:var(--primary)}.condo-switcher__menu{position:absolute;top:calc(100% + 6px);right:0;min-width:100%;white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:15;padding:.3rem;animation:condo-dropdown-in .2s cubic-bezier(.16,1,.3,1)}.condo-switcher__option{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .65rem;border:none;border-radius:10px;background:transparent;color:var(--text);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:background-color .15s ease;text-align:left}.condo-switcher__option:hover{background:var(--bg)}.condo-switcher__option--active{color:var(--primary);font-weight:600}.condo-switcher__check{width:14px;flex-shrink:0}@keyframes condo-dropdown-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.condo-switcher__menu{animation:none}.header-user .btn-icon[aria-label="Trocar de condomínio"]:hover svg{animation:none}}
