:root{
  --sp-bg:#071311;
  --sp-panel:#0d1d1a;
  --sp-line:rgba(255,255,255,.14);
  --sp-text:#ffffff;
  --sp-muted:#bad0ca;
  --sp-mint:#8af2c7;
  --sp-green:#0c7a69;
  --sp-red:#d83b48;
}
.sp-page,.sp-card,.sa-shell,.sa-card,.sa-header-actions a,.sa-header-actions button,.sa-next-button,.sa-secondary-action,.sa-footer{font-family:Manrope,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.sp-auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:
  linear-gradient(135deg,rgba(12,122,105,.08),transparent 34%),
  linear-gradient(45deg,transparent 0 62%,rgba(49,103,178,.08) 62.2%,transparent 62.5%),
  repeating-linear-gradient(90deg,rgba(12,82,80,.035) 0 1px,transparent 1px 118px),
  #f6f8f6;color:#26322f}
.sp-page{min-height:100vh;margin:0;background:#f5f7f5;color:#26322f}
.sp-main{position:relative;width:100%;min-height:100vh;overflow:hidden;background:
  linear-gradient(115deg,transparent 0 13%,rgba(49,103,178,.08) 13.08%,transparent 13.22% 44%,rgba(96,165,250,.12) 44.08%,transparent 44.25%),
  linear-gradient(62deg,transparent 0 58%,rgba(49,103,178,.06) 58.08%,transparent 58.22%),
  repeating-linear-gradient(90deg,rgba(49,103,178,.025) 0 1px,transparent 1px 116px),
  repeating-linear-gradient(0deg,rgba(49,103,178,.018) 0 1px,transparent 1px 98px),
  radial-gradient(circle at 14% 10%,rgba(96,165,250,.20),transparent 23%),
  radial-gradient(circle at 88% 7%,rgba(49,103,178,.10),transparent 20%),
  radial-gradient(circle at 78% 84%,rgba(96,165,250,.14),transparent 24%),
  #f5f7f5}
.sp-main:after{content:"";position:fixed;right:-190px;top:90px;z-index:0;width:500px;height:500px;border:1px solid rgba(49,103,178,.08);border-radius:50%;pointer-events:none;box-shadow:
  -760px 430px 0 -132px rgba(49,103,178,.05),
  -650px 72px 0 -190px rgba(96,165,250,.14),
  inset 0 0 90px rgba(49,103,178,.025)}
.sp-card{width:min(100%,440px);display:grid;gap:18px;padding:34px;border:1px solid rgba(12,82,80,.14);border-radius:8px;background:rgba(255,255,255,.92);box-shadow:0 24px 70px rgba(22,60,72,.12);backdrop-filter:blur(14px)}
.sp-register{width:min(100%,780px)}
.sp-auth-brand{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-height:68px;padding:0 22px;border-radius:8px;background:#071311;box-shadow:0 14px 34px rgba(7,19,17,.16)}
.sp-auth-brand img{display:block;width:220px;height:auto}
.sp-auth-bouncing-mark{position:relative;justify-self:center;width:104px;height:98px;margin:-4px 0 0}
.sp-auth-bouncing-mark span{position:absolute;left:50%;top:8px;width:72px;height:62px;transform-origin:50% 50%;animation:sp-mark-bounce 1s cubic-bezier(.42,0,.24,1) infinite}
.sp-auth-bouncing-mark i{position:absolute;width:21px;height:21px;border-radius:50%;box-shadow:0 8px 16px rgba(12,82,80,.16)}
.sp-auth-bouncing-mark i:nth-child(1){left:0;top:21px;border:5px solid #071311;background:transparent}
.sp-auth-bouncing-mark i:nth-child(2){left:26px;top:0;background:#62d8cf}
.sp-auth-bouncing-mark i:nth-child(3){left:26px;bottom:0;background:#62d8cf}
.sp-auth-bouncing-mark i:nth-child(4){right:0;top:21px;background:#9af5c4}
.sp-auth-bouncing-mark b{position:absolute;left:50%;bottom:9px;width:58px;height:12px;border-radius:50%;background:rgba(12,82,80,.16);filter:blur(1px);transform:translateX(-50%);animation:sp-ball-shadow 1s cubic-bezier(.42,0,.24,1) infinite}
.sp-card p{margin:0;color:#0c7a69;font-size:.72rem;font-weight:700;letter-spacing:.14em;line-height:1.45;text-transform:uppercase}
.sp-card h1{margin:5px 0 0;color:#102522;font-size:1.72rem;font-weight:600;line-height:1.08}
.sp-card form{display:grid;gap:14px}
.sp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sp-card label{display:grid;gap:7px;color:#4c5d58;font-size:.82rem;font-weight:600}
.sp-card input{min-height:46px;border:1px solid #d9e5df;border-radius:8px;background:#fbfdfc;color:#17211f;padding:0 13px;font-size:.94rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.sp-card input:focus{outline:3px solid rgba(12,122,105,.16);border-color:rgba(12,122,105,.45);background:#fff}
.sp-card button{min-height:48px;border:0;border-radius:8px;background:#0c7a69;color:#fff;font-size:.94rem;font-weight:700;cursor:pointer;box-shadow:0 12px 24px rgba(12,122,105,.22)}
.sp-card button:hover{background:#086d60}
.sp-age-step{display:grid;gap:22px}
.sp-age-step[hidden],.sp-card form[hidden]{display:none}
.sp-age-copy{display:grid;gap:8px}
.sp-age-copy span{color:#0c7a69;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.sp-age-copy h2{margin:0;color:#102522;font-size:1.22rem;font-weight:600;line-height:1.18}
.sp-age-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sp-age-options button{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:14px;min-height:86px;padding:14px 16px;border:1px solid rgba(12,82,80,.14);border-radius:14px;background:rgba(255,255,255,.74);color:#0c5250;text-align:left;box-shadow:0 12px 28px rgba(22,60,72,.08)}
.sp-age-options button:hover{transform:translateY(-2px);background:#eafff8;border-color:rgba(17,191,165,.42);color:#0c5250;box-shadow:0 18px 32px rgba(22,60,72,.12)}
.sp-age-options button span{display:grid;place-items:center;width:56px;height:56px;border:1px solid rgba(17,191,165,.3);border-radius:14px;background:#effffb;color:#0c7771;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.sp-age-options button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sp-age-options button strong{min-width:0;font-size:.94rem;font-weight:700;line-height:1.18}
.sp-form-note{padding:10px 12px;border-radius:8px;background:#eefbf7;color:#0c5250!important;font-size:.78rem!important;letter-spacing:.08em!important}
.sp-back-button{justify-self:start;display:inline-flex!important;align-items:center;gap:8px;min-height:38px!important;padding:0 13px!important;border:1px solid rgba(12,82,80,.14)!important;border-radius:12px!important;background:rgba(255,255,255,.78)!important;color:#0c7a69!important;font-size:.82rem!important;box-shadow:0 8px 18px rgba(22,60,72,.055)!important}
.sp-back-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sp-back-button:hover{transform:translateY(-1px);background:#eafff8!important;color:#086d60!important;border-color:rgba(17,191,165,.38)!important}
.sp-secondary-link{justify-self:start;color:#0c7a69;font-size:.88rem;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.sp-loading-card{position:relative;overflow:hidden;text-align:left;background:linear-gradient(145deg,#fff 0%,#f8fffc 62%,#eef8ff 100%)}
.sp-login-loading[hidden]{display:none}
.sp-login-loading{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:
  linear-gradient(115deg,transparent 0 13%,rgba(49,103,178,.08) 13.08%,transparent 13.22% 44%,rgba(96,165,250,.12) 44.08%,transparent 44.25%),
  radial-gradient(circle at 15% 12%,rgba(96,165,250,.16),transparent 24%),
  radial-gradient(circle at 86% 82%,rgba(17,191,165,.15),transparent 24%),
  #f5f7f5}
.sp-login-loading .sp-loading-card{width:min(100%,460px)}
.sp-loading-card:after{content:"";position:absolute;right:-70px;bottom:-90px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(17,191,165,.18),rgba(50,152,232,.06) 62%,transparent 70%);pointer-events:none}
.sp-loading-card>*{position:relative;z-index:1}
.sp-loading-copy{display:grid;gap:8px}
.sp-loading-copy span{color:#526977;font-size:.92rem;line-height:1.5}
.sp-loading-progress-wrap{position:relative;display:grid;align-items:center;min-height:48px;padding:17px 0 13px}
.sp-loading-progress{height:10px;overflow:hidden;border-radius:999px;background:#dfece8;box-shadow:inset 0 1px 2px rgba(12,82,80,.08)}
.sp-loading-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#11bfa5,#3298e8);animation:sp-loading-fill 5s ease forwards}
.sp-loading-card .sp-loading-direct{justify-self:start;display:inline-flex;align-items:center;justify-content:center;width:38px;min-height:38px;padding:0;border:1px solid rgba(17,191,165,.38);border-radius:999px;background:#ecfbf7;color:#0c7771;font-size:.88rem;font-weight:700;text-decoration:none;box-shadow:0 10px 22px rgba(17,191,165,.12)}
.sp-loading-card .sp-loading-direct:hover{background:#ddf4ef;border-color:rgba(17,191,165,.56)}
.sp-loading-ball-button{position:absolute;left:0;top:50%;z-index:2;animation:sp-loading-ball-travel 5s ease forwards}
.sp-loading-ball{position:relative;display:block;width:25px;height:25px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#ffffff 0 8%,#9af5c4 9% 30%,#11bfa5 31% 72%,#0c7771 73% 100%);box-shadow:0 8px 18px rgba(12,119,113,.22)}
.sp-loading-ball:before,.sp-loading-ball:after{content:"";position:absolute;inset:5px;border:2px solid rgba(255,255,255,.72);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%}
.sp-loading-ball:after{inset:8px;border-color:rgba(7,19,17,.24);border-right-color:transparent;border-top-color:transparent}
.sp-loading-skip{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:34px;margin-top:2px;padding:0 13px;border:1px solid rgba(12,119,113,.22);border-radius:999px;background:rgba(255,255,255,.72);color:#0c7771;font-size:.78rem;font-weight:700;text-decoration:none;box-shadow:0 8px 18px rgba(22,60,72,.08);cursor:pointer}
.sp-loading-skip span{font-size:1rem;line-height:1}
.sp-loading-skip:hover{background:#ecfbf7;border-color:rgba(17,191,165,.42)}
.sp-error,.sp-success{padding:11px 13px;border-radius:8px;font-weight:600}
.sp-error{background:#fff0f2;color:#9e2634}
.sp-success{background:#e7fff5;color:#136652}
.sp-login-error-panel{background:linear-gradient(145deg,#fff 0%,#fff8f8 62%,#fff1f1 100%)}
.sp-login-error-icon{border-color:rgba(220,82,82,.24);background:#fff7f7}
.sp-login-error-icon svg{stroke:#d05252}
.np-not-found{width:min(100%,430px);display:grid;gap:10px;padding:28px;border:1px solid var(--sp-line);border-radius:8px;background:var(--sp-panel);color:var(--sp-text)}
.np-not-found h1{margin:0;font-size:1.4rem;font-weight:400}
.np-not-found p{margin:0;color:var(--sp-muted)}

.sa-shell{position:relative;z-index:1;width:min(1520px,100%);margin:0 auto;padding:14px 18px 34px;display:grid;gap:22px}
.sa-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-height:48px;padding:0 2px 10px;border-bottom:1px solid rgba(17,191,165,.32);background:transparent;backdrop-filter:none}
.sa-brand img{display:block;width:108px;height:auto}
.sa-header-actions{display:flex;align-items:flex-start;gap:14px;padding-top:2px}
.sa-header-actions a,.sa-header-actions button{position:relative;display:grid;place-items:center;width:44px;min-height:44px;border:1px solid rgba(12,82,80,.14);border-radius:12px;background:rgba(255,255,255,.72);color:#0c5250;box-shadow:0 8px 18px rgba(22,60,72,.055);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}
.sa-header-actions a:hover,.sa-header-actions button:hover{transform:translateY(-2px);border-color:rgba(17,191,165,.42);background:#ddf4ef;box-shadow:0 16px 30px rgba(22,60,72,.1)}
.sa-header-actions a:focus-visible,.sa-header-actions button:focus-visible,.sa-next-button:focus-visible,.sa-secondary-action:focus-visible{outline:3px solid rgba(50,152,232,.28);outline-offset:3px}
.sa-header-actions svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sa-header-actions span{position:absolute;top:5px;right:5px;width:10px;height:10px;border:2px solid #fff;border-radius:999px;background:#3298e8;font-size:0;color:transparent}
.sa-header-actions .sa-instagram{color:#2f8bd8;background:rgba(235,247,255,.78);border-color:rgba(47,139,216,.18)}
.sa-header-actions .sa-whatsapp{color:#18a976;background:rgba(235,255,246,.78);border-color:rgba(24,169,118,.18)}
.sa-header-actions .sa-email{color:#0698a8;background:rgba(231,251,252,.78);border-color:rgba(6,152,168,.18)}
.sa-header-actions .sa-user-action{color:#0a5f5a;background:rgba(241,252,249,.78);border-color:rgba(10,95,90,.16)}
.sa-header-actions .sa-logout{color:#607572;background:rgba(255,255,255,.78);border-color:rgba(96,117,114,.18)}
.sa-header-actions .sa-instagram:hover{background:#e1f3ff;border-color:rgba(47,139,216,.32)}
.sa-header-actions .sa-whatsapp:hover{background:#ddfaed;border-color:rgba(24,169,118,.34)}
.sa-header-actions .sa-email:hover{background:#dff8fa;border-color:rgba(6,152,168,.34)}
.sa-header-actions .sa-user-action:hover{background:#ddf4ef}
@keyframes sp-loading-fill{to{width:100%}}
@keyframes sp-loading-ball-travel{0%{left:0;transform:translateY(-50%) rotate(0)}100%{left:calc(100% - 38px);transform:translateY(-50%) rotate(720deg)}}
@keyframes sp-mark-bounce{0%,100%{transform:translateX(-50%) translateY(0)}45%{transform:translateX(-50%) translateY(26px)}62%{transform:translateX(-50%) translateY(20px)}}
@keyframes sp-ball-shadow{0%,100%{width:34px;opacity:.22}45%{width:72px;opacity:.44}62%{width:60px;opacity:.32}}
.sa-header-actions .sa-logout:hover{background:#f4faf8;border-color:rgba(96,117,114,.3)}
.sa-header-actions .sa-whatsapp svg{fill:currentColor;stroke:none}
.sa-hero-row{display:grid;grid-template-columns:minmax(360px,430px) minmax(520px,1fr);gap:34px;align-items:end;padding:10px 22px 4px}
.sa-welcome p,.sa-card header p{margin:0;color:#11bfa5;font-size:.78rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}
.sa-welcome h1{margin:8px 0 0;color:#0c5250;font-size:clamp(2rem,3.4vw,2.65rem);font-weight:600;line-height:1.04;letter-spacing:0}
.sa-timeline-wrap{display:grid;justify-self:end;width:min(820px,100%);gap:14px}
.sa-timeline{position:relative;display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:22px;align-items:start;padding:4px 0 0}
.sa-timeline:before{content:"";position:absolute;left:9%;right:9%;top:16px;height:2px;border-radius:999px;background:linear-gradient(90deg,rgba(17,191,165,.2),rgba(50,152,232,.14),rgba(12,82,80,.1));pointer-events:none}
.sa-timeline-item{position:relative;display:grid;justify-items:center;gap:7px;color:#17334a;text-align:center}
.sa-timeline-item:before,.sa-timeline-item:after{display:none}
.sa-timeline-item i{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(12,82,80,.12);border-radius:50%;background:rgba(246,252,251,.86)}
.sa-timeline-item i:before{content:"";width:10px;height:10px;border-radius:50%;background:#94a4ad}
.sa-timeline-item.is-current i{border-color:rgba(17,191,165,.42);background:#eafff8;box-shadow:0 0 0 6px rgba(17,191,165,.1)}
.sa-timeline-item.is-current i:before{background:#11bfa5}
.sa-timeline-item strong{display:block;min-width:0;color:#17334a;font-size:.84rem;font-weight:600;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-timeline-item span{display:block;color:#667985;font-size:.72rem;font-weight:500;line-height:1.2;white-space:nowrap}
.sa-timeline-empty{color:#667985;font-size:.78rem;font-weight:400}
.sa-card{position:relative;display:grid;gap:16px;align-content:start;min-width:0;padding:26px;border:1px solid rgba(12,82,80,.14);border-radius:22px;background:#fff;box-shadow:0 14px 36px rgba(22,60,72,.09);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.sa-card:hover{transform:translateY(-2px);box-shadow:0 20px 42px rgba(22,60,72,.12);border-color:rgba(17,191,165,.22)}
.sa-card header{display:flex;align-items:center;justify-content:space-between;gap:14px}
.sa-card header svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sa-main-grid{display:grid;grid-template-columns:minmax(245px,290px) minmax(420px,1fr) minmax(310px,360px);gap:18px;align-items:stretch}
.sa-center-stack{display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px;align-content:stretch;min-width:0;height:100%}
.sa-next-card{display:flex;flex-direction:column;width:100%;min-height:440px;padding:28px 16px 10px;color:#0b4f49;background:
  linear-gradient(0deg,transparent 0 49%,rgba(255,255,255,.2) 49.4% 50.4%,transparent 50.8%),
  linear-gradient(90deg,transparent 0 49%,rgba(255,255,255,.22) 49.4% 50.4%,transparent 50.8%),
  linear-gradient(135deg,rgba(255,255,255,.88),rgba(234,252,244,.62) 48%,rgba(232,246,255,.7)),
  radial-gradient(circle at 72% 34%,rgba(17,191,165,.18),transparent 28%),
  #eef9f4}
.sa-next-card:before{content:"";position:absolute;left:22px;right:22px;top:88px;bottom:82px;border:2px solid rgba(12,119,113,.16);border-radius:14px;background:
  linear-gradient(90deg,transparent 0 49%,rgba(12,119,113,.12) 49.5% 50.5%,transparent 51%),
  linear-gradient(0deg,transparent 0 49%,rgba(12,119,113,.1) 49.5% 50.5%,transparent 51%);opacity:.55;pointer-events:none}
.sa-next-card:after{display:none}
.sa-next-card header{display:none!important}
.sa-next-bg{display:none}
.sa-next-card>*:not(.sa-next-bg){position:relative;z-index:1}
.sa-next-date{display:grid;justify-items:center;margin-top:16px;text-align:center}
.sa-next-date strong{font-size:3.15rem;font-weight:600;line-height:.9;letter-spacing:0}
.sa-next-date span{margin-top:6px;font-size:.94rem;font-weight:600;letter-spacing:.18em}
.sa-next-date em{margin-top:6px;font-size:.88rem;font-style:normal}
.sa-days-ring{align-self:center;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:126px;height:126px;margin:24px 0 16px;border-radius:50%;color:#0b4f49;text-align:center;box-shadow:0 0 0 44px rgba(17,191,165,.045)}
.sa-days-ring:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from -22deg,#0b4f49 0 34%,#0f8d7e 52%,#19c6ad 78%,rgba(12,82,80,.24) 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 10px),#000 calc(100% - 9px));mask:radial-gradient(farthest-side,transparent calc(100% - 10px),#000 calc(100% - 9px));filter:drop-shadow(0 5px 10px rgba(0,72,66,.2))}
.sa-days-ring:after{content:"";position:absolute;inset:13px;border-radius:50%;border:1px solid rgba(12,82,80,.16);box-shadow:0 0 0 13px rgba(12,82,80,.045),inset 0 0 22px rgba(255,255,255,.3);background:rgba(255,255,255,.2)}
.sa-days-ring b,.sa-days-ring span{position:relative;z-index:1}
.sa-days-ring b{font-size:2.15rem;font-weight:500;line-height:.9}
.sa-days-ring span{margin-top:3px;text-transform:uppercase;font-size:.66rem;font-weight:500;letter-spacing:.08em}
.sa-next-card>p{text-align:center;color:#0b4f49;font-size:.72rem;font-weight:700;text-transform:uppercase}
.sa-next-button{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;min-height:50px;margin-top:auto;margin-bottom:10px;border:0;border-radius:12px;background:rgba(255,255,255,.9);color:#0c5250;font-size:.86rem;font-weight:600;cursor:pointer}
.sa-next-empty{display:grid;place-items:center;gap:10px;min-height:250px;text-align:center}
.sa-next-empty strong{font-size:4rem}
.sa-stats-card{align-self:start;grid-template-rows:auto auto;min-height:0;background:linear-gradient(145deg,#fff 0%,#fbfffd 58%,#f2fbff 100%)}
.sa-stats-card:after{content:"";position:absolute;inset:auto -90px -120px auto;z-index:0;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(17,191,165,.12),rgba(50,152,232,.05) 58%,transparent 70%);pointer-events:none}
.sa-stats-card>header,.sa-stats-card>.sa-stats-content{position:relative;z-index:1}
.sa-stats-content{display:grid;gap:10px;align-content:start}
.sa-stats-summary{display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:10px;align-items:stretch}
.sa-stats-intro,.sa-stats-billing,.sa-stats-grid article{border:1px solid rgba(12,82,80,.1);border-radius:14px;background:rgba(255,255,255,.74);box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}
.sa-stats-intro{display:grid;gap:8px;padding:14px}
.sa-stats-summary h3{margin:0;color:#17334a;font-size:1rem;font-weight:500}
.sa-stats-summary p{max-width:390px;margin:0;color:#526977;font-size:.78rem;line-height:1.42}
.sa-stats-attendance{display:grid;grid-template-columns:auto 48px;gap:6px 12px;align-items:center;margin-top:2px}
.sa-stats-attendance span{color:#667985;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase}
.sa-stats-attendance strong{justify-self:end;color:#0c5250;font-size:.95rem;font-weight:600}
.sa-stats-attendance i{grid-column:1/-1;position:relative;height:7px;border-radius:999px;background:#e5eee9;overflow:hidden}
.sa-stats-attendance i:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--stats-progress);border-radius:inherit;background:linear-gradient(90deg,#9df3cd,#11bfa5)}
.sa-stats-billing{display:grid;align-content:center;gap:5px;padding:14px;color:#0c5250}
.sa-stats-billing span,.sa-stats-grid span{color:#667985;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase}
.sa-stats-billing strong{font-size:1.28rem;font-weight:600;line-height:1}
.sa-stats-billing em{font-size:.74rem;font-style:normal;font-weight:500}
.sa-stats-billing.is-paid{background:linear-gradient(135deg,rgba(230,248,239,.9),rgba(239,255,250,.74));border-color:rgba(20,128,99,.16)}
.sa-stats-billing.is-pending{background:linear-gradient(135deg,rgba(255,245,245,.94),rgba(255,234,234,.78));border-color:rgba(220,82,82,.24);color:#9f3535}
.sa-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sa-stats-grid article{display:grid;grid-template-rows:auto auto;min-height:58px;align-items:center;gap:6px;padding:9px 12px}
.sa-stat-main{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.sa-stat-main svg{width:20px;height:20px;flex:0 0 auto;color:#0c7771;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sa-stats-grid strong{justify-self:end;min-width:24px;color:#0c5250;font-size:1.12rem;font-weight:500;line-height:1;text-align:right}
.sa-stats-grid .sa-stat-label{display:block;min-width:0;color:#667985;font-size:.5rem;font-weight:600;line-height:1;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-next-training-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);align-items:center;gap:30px;min-height:190px;padding:30px;background:linear-gradient(135deg,#fff 0%,#f8fffc 54%,#eef8ff 100%);border-color:rgba(17,191,165,.18)}
.sa-next-training-card:before{content:"";position:absolute;right:-58px;bottom:-80px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(17,191,165,.14),rgba(50,152,232,.06) 58%,transparent 70%);pointer-events:none}
.sa-next-training-card>*{position:relative;z-index:1}
.sa-next-training-card div{display:grid;gap:10px}
.sa-next-training-card p{margin:0;color:#11bfa5;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.sa-next-training-card h3{margin:0;color:#17334a;font-size:1.35rem;font-weight:600;letter-spacing:.08em;line-height:1.2}
.sa-next-training-card span{max-width:560px;color:#526977;font-size:.94rem;line-height:1.45}
.sa-next-training-card form{display:grid;gap:10px}
.sa-next-training-card textarea{width:100%;min-height:92px;border:1px solid rgba(12,82,80,.16);border-radius:10px;background:#fbfefd;color:#17334a;font:inherit;font-size:.82rem;line-height:1.4;padding:10px 12px;resize:vertical}
.sa-next-training-card textarea:focus{outline:3px solid rgba(50,152,232,.18);border-color:rgba(17,191,165,.36)}
.sa-next-training-card button{justify-self:start;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 20px;border:1px solid rgba(17,191,165,.38);border-radius:10px;background:#ecfbf7;color:#0c7771;font-size:.84rem;font-weight:600;cursor:pointer}
.sa-next-training-card button:hover{background:#ddf4ef;border-color:rgba(17,191,165,.52)}
.sa-side-stack{display:grid;gap:14px}
.sa-classmates-card{height:320px;background:linear-gradient(145deg,#fff 0%,#f8fffc 48%,#eef8ff 100%)}
.sa-classmates-card:before{content:"";position:absolute;right:-54px;top:-44px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(50,152,232,.16),rgba(17,191,165,.08) 52%,transparent 72%);pointer-events:none}
.sa-classmates-card:after{content:"";position:absolute;left:-30px;bottom:-46px;width:150px;height:150px;border-radius:42px;background:linear-gradient(135deg,rgba(17,191,165,.08),rgba(154,245,196,.12));transform:rotate(-12deg);pointer-events:none}
.sa-classmates-card header,.sa-classmate-slider{position:relative;z-index:1}
.sa-classmates-card header{color:#11bfa5}
.sa-classmate-nav{display:flex;align-items:center;gap:6px}
.sa-classmate-nav button{display:grid;place-items:center;width:28px;min-height:28px;border:1px solid rgba(12,82,80,.13);border-radius:9px;background:#fff;color:#0c7771;font-size:1rem;line-height:1;cursor:pointer}
.sa-classmate-nav button:hover{border-color:rgba(17,191,165,.36);background:#e9faf5}
.sa-classmate-slider{display:grid;min-height:0;overflow:hidden}
.sa-classmate-group{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;min-height:0;padding:0}
.sa-classmate-group[hidden]{display:none}
.sa-classmates{display:grid;gap:8px}
.sa-classmates p{margin:10px 0 0;color:#667985;font-size:.82rem;line-height:1.35}
.sa-classmates span{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:14px}
.sa-classmates b{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.72);border-radius:50%;color:#0c7771;font-size:.9rem;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.82);overflow:hidden}
.sa-classmates b:after{content:"";position:absolute;inset:5px 5px auto auto;width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.44);filter:blur(1px)}
.sa-classmates span.is-mint b{background:radial-gradient(circle at 28% 22%,#effffb 0 20%,#c8f5ec 46%,#9ae6d7 100%);color:#07887d}.sa-classmates span.is-blue b{background:radial-gradient(circle at 28% 22%,#f4fbff 0 20%,#d7efff 48%,#9fd7ff 100%);color:#2089d7}.sa-classmates span.is-lime b{background:radial-gradient(circle at 28% 22%,#fbfff1 0 20%,#e2f7c5 48%,#bde986 100%);color:#4f9a26}.sa-classmates span.is-green b{background:radial-gradient(circle at 28% 22%,#f4fff9 0 20%,#d3f7e5 48%,#9ae3bc 100%);color:#16a261}
.sa-classmates strong{min-width:0;color:#17334a;font-size:.9rem;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-private-classmate{display:grid;justify-items:center;align-content:center;gap:10px;min-height:210px;text-align:center}
.sa-private-classmate b{position:relative;display:grid;place-items:center;width:62px;height:62px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:radial-gradient(circle at 28% 22%,#effffb 0 20%,#c8f5ec 46%,#9ae6d7 100%);color:#07887d;font-size:1.05rem;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.82),0 12px 22px rgba(22,60,72,.08);overflow:hidden}
.sa-private-classmate b:after{content:"";position:absolute;inset:7px 7px auto auto;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.44);filter:blur(1px)}
.sa-private-classmate strong{color:#0c5250;font-size:1.16rem;font-weight:500;line-height:1.15}
.sa-private-classmate span{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 18px;border:1px solid rgba(17,191,165,.24);border-radius:999px;background:#e9faf5;color:#0c7771;font-size:.84rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.sa-classmate-time{align-self:end;justify-self:end;color:#667985;font-size:.58rem;font-weight:500;line-height:1;letter-spacing:.04em}
.sa-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}
.sa-bottom-grid .sa-card{height:226px;min-height:226px}
.sa-bottom-grid .sa-community-hub{height:auto;min-height:292px}
.sa-community-rules-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);gap:0;padding:0}
.sa-community-rules-card.sa-image-card{grid-column:1/-1;display:block;overflow:hidden;background:transparent;line-height:0;aspect-ratio:1983/793}
.sa-community-rules-card.sa-image-card:before,.sa-community-rules-card.sa-image-card:after{display:none}
.sa-community-rules-card.sa-image-card a{display:block;width:100%;height:100%;border-radius:inherit;overflow:hidden}
.sa-community-rules-card.sa-image-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.sa-community-rules-card:before{content:"";position:absolute;right:46%;top:18px;width:150px;height:210px;background:radial-gradient(circle,#3298e8 1.2px,transparent 1.6px);background-size:13px 13px;opacity:.16;transform:skewY(-22deg) rotate(4deg)}
.sa-community-rules-card:after{content:"";position:absolute;right:-16px;bottom:0;width:136px;height:136px;border-radius:80% 0 18px 0;background:linear-gradient(135deg,rgba(50,152,232,.72),rgba(99,216,194,.52))}
.sa-community-rules-card section{position:relative;z-index:1;display:grid;align-content:start;gap:14px;padding:26px}
.sa-community-rules-card section+section{border-left:1px solid rgba(12,82,80,.11)}
.sa-bottom-grid header p{display:inline-flex;align-items:center;gap:12px;color:#0c7771}
.sa-community-rules-card section:first-child header p{color:#3298e8}
.sa-bottom-grid header p svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sa-bottom-grid p{position:relative;z-index:1;color:#526977;font-size:.88rem;line-height:1.55}
.sa-secondary-action{position:relative;z-index:1;align-self:end;justify-self:start;display:inline-flex;align-items:center;gap:18px;min-height:50px;padding:0 28px;border:1px solid rgba(17,191,165,.44);border-radius:12px;background:rgba(255,255,255,.72);color:#0c7771;font-size:.9rem;font-weight:500}
.sa-gift-card{padding:0;min-height:226px;background:transparent;line-height:0}
.sa-gift-card a{display:block;width:100%;height:100%;border-radius:inherit;overflow:hidden}
.sa-gift-card a:focus-visible{outline:3px solid rgba(17,191,165,.44);outline-offset:3px}
.sa-gift-card picture,.sa-image-card picture{display:block;width:100%;height:100%;border-radius:inherit;overflow:hidden}
.sa-image-card source,.sa-image-card img{max-width:100%}
.sa-gift-card img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.sa-side-gift-card{align-self:start;height:auto;min-height:0;aspect-ratio:163/96;background:transparent}
.sa-side-gift-card img{object-fit:cover;object-position:center}
.sa-community-hub{grid-column:1/-1;min-height:0;height:auto;padding:24px;background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(244,253,255,.72))}
.sa-bottom-grid .sa-community-hub{height:auto;min-height:0}
.sa-community-hub header p{display:inline-flex;align-items:center;gap:16px;margin-bottom:14px;color:#0c7771;font-size:1.04rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 8px 22px rgba(50,152,232,.16)}
.sa-community-hub header svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sa-logo-balls{position:relative;display:inline-block;width:42px;height:36px;flex:0 0 auto;filter:drop-shadow(0 10px 18px rgba(17,191,165,.24))}
.sa-logo-balls i{position:absolute;width:13px;height:13px;border-radius:50%;box-shadow:0 6px 14px rgba(12,82,80,.14)}
.sa-logo-balls i:nth-child(1){left:0;top:12px;border:3px solid #12bfa9;background:#fff}
.sa-logo-balls i:nth-child(2){left:15px;top:0;background:#085a57}
.sa-logo-balls i:nth-child(3){left:15px;bottom:0;background:linear-gradient(135deg,#36d0c3,#72efe0)}
.sa-logo-balls i:nth-child(4){right:0;top:12px;background:linear-gradient(135deg,#82f5b8,#32d895)}
.sa-community-bubbles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:4px}
.sa-community-bubble{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:13px;align-items:start;min-height:102px;padding:14px 16px;border:1px solid rgba(12,82,80,.11);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(244,253,255,.76));box-shadow:0 12px 30px rgba(22,60,72,.06);overflow:hidden}
.sa-community-bubble:after{content:"";position:absolute;right:-42px;bottom:-70px;width:118px;height:118px;border-radius:50%;background:radial-gradient(circle,rgba(17,191,165,.16),rgba(50,152,232,.05) 62%,transparent 70%);pointer-events:none}
.sa-community-bubble>*{position:relative;z-index:1}
.sa-community-birthday-bubble{border-color:rgba(208,166,80,.18);background:linear-gradient(145deg,rgba(255,255,255,.9) 0%,rgba(255,250,239,.86) 54%,rgba(239,255,248,.72) 100%)}
.sa-community-birthday-bubble:after{background:radial-gradient(circle,rgba(242,190,88,.2),rgba(17,191,165,.08) 60%,transparent 72%)}
.sa-community-link-bubble[href="/normativa"]{border-color:rgba(50,152,232,.16);background:linear-gradient(145deg,rgba(255,255,255,.9) 0%,rgba(241,249,255,.82) 56%,rgba(231,249,255,.8) 100%)}
.sa-community-link-bubble[href="/normativa"]:after{background:radial-gradient(circle,rgba(50,152,232,.18),rgba(17,191,165,.06) 62%,transparent 72%)}
.sa-community-link-bubble[href="/tarifas"]{border-color:rgba(17,191,165,.18);background:linear-gradient(145deg,rgba(255,255,255,.9) 0%,rgba(239,255,249,.82) 54%,rgba(230,250,244,.84) 100%)}
.sa-community-link-bubble[href="/tarifas"]:after{background:radial-gradient(circle,rgba(17,191,165,.2),rgba(154,245,196,.08) 62%,transparent 72%)}
.sa-community-area-wide{border-color:rgba(50,152,232,.14);background:linear-gradient(135deg,rgba(255,255,255,.9) 0%,rgba(242,253,250,.84) 48%,rgba(234,248,255,.86) 100%)}
.sa-community-area-wide:after{right:-30px;bottom:-78px;width:210px;height:210px;background:radial-gradient(circle,rgba(50,152,232,.17),rgba(17,191,165,.12) 54%,transparent 72%)}
.sa-community-link-bubble{color:inherit;text-decoration:none}
.sa-community-link-bubble:hover{border-color:rgba(17,191,165,.3);background:rgba(255,255,255,.86)}
.sa-community-bubble-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(17,191,165,.18);border-radius:13px;background:rgba(255,255,255,.72);color:#0c7771;box-shadow:0 9px 20px rgba(22,60,72,.05)}
.sa-community-bubble-icon svg,.sa-community-feature-list svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sa-community-bubble h3{margin:0 0 8px;color:#17334a;font-size:.98rem;font-weight:650;letter-spacing:.04em}
.sa-community-bubbles>.sa-community-bubble:not(.sa-community-area-wide) h3{display:flex;align-items:center;min-height:38px;margin-bottom:10px;line-height:1.1}
.sa-community-bubble p{margin:0;color:#526977;font-size:.78rem;line-height:1.32}
.sa-community-bubble-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#7c9499;font-size:1.5rem;line-height:1}
.sa-birthday-mini-list{display:grid;gap:4px;margin:10px 0 0;padding:0;list-style:none}
.sa-birthday-mini-list li{color:#0c5250;font-size:.83rem;font-weight:600}
.sa-birthday-empty{display:flex;align-items:center;color:#526977}
.sa-birthday-empty p{margin:0;font-size:.78rem;line-height:1.32}
.sa-birthday-question{margin-top:8px!important;padding-right:44px;color:#0c7771!important;font-size:.74rem!important;font-weight:700!important;letter-spacing:.02em}
.sa-community-gift-action{position:absolute;right:14px;bottom:12px;display:grid;place-items:center;width:34px;min-height:34px;border:1px solid rgba(17,191,165,.36);border-radius:12px;background:linear-gradient(145deg,#f2fffb,#dff8f2);color:#0c7771;box-shadow:0 10px 22px rgba(17,191,165,.16);cursor:pointer}
.sa-community-gift-action:hover{background:linear-gradient(145deg,#e9fff9,#d4f3ec);border-color:rgba(17,191,165,.56)}
.sa-community-gift-action svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sa-community-area-wide{grid-column:1/-1;grid-template-columns:48px minmax(0,1fr);min-height:154px;background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(238,255,250,.74) 52%,rgba(240,249,255,.78))}
.sa-community-area-wide h3{display:flex;align-items:center;min-height:42px;margin-bottom:10px;font-size:1.12rem;line-height:1.1}
.sa-community-feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:14px 0 0;padding:0;list-style:none}
.sa-community-feature-list li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:start;color:#526977;font-size:.82rem;line-height:1.36}
.sa-community-feature-list svg{color:#0c7771}
.sa-community-action{grid-column:2;justify-self:start;align-self:end;display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:0 14px;border:1px solid rgba(17,191,165,.34);border-radius:10px;background:#ecfbf7;color:#0c7771;font-size:.76rem;font-weight:600;cursor:pointer}
.sa-community-action:hover{background:#ddf4ef;border-color:rgba(17,191,165,.52)}
.sa-footer{display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr);gap:18px;align-items:center;margin-top:4px;padding:20px 2px 0;border-top:1px solid rgba(17,191,165,.22)}
.sa-footer-brand{justify-self:start}
.sa-footer-brand img{display:block;width:104px;height:auto}
.sa-footer-partner{display:block;justify-self:center;width:min(190px,28vw);height:auto;opacity:.9}
.sa-footer-actions{justify-self:end;padding-top:0}
.sa-footer-actions a,.sa-footer-actions button{width:38px;min-height:38px;border-radius:11px}
.sa-footer-actions svg{width:18px;height:18px}
.sa-policy-shell{width:min(1180px,100%);gap:22px;padding-bottom:42px}
.sa-policy-header{margin-bottom:4px}
.sa-policy-hero{position:relative;display:flex;align-items:end;justify-content:space-between;gap:22px;padding:34px;border:1px solid rgba(17,191,165,.18);border-radius:26px;background:
  radial-gradient(circle at 88% 18%,rgba(50,152,232,.16),transparent 24%),
  radial-gradient(circle at 10% 100%,rgba(17,191,165,.16),transparent 28%),
  linear-gradient(135deg,rgba(255,255,255,.92),rgba(245,255,252,.78));box-shadow:0 18px 44px rgba(22,60,72,.08);overflow:hidden}
.sa-policy-hero:before{content:"";position:absolute;right:34px;top:28px;width:220px;height:150px;background:radial-gradient(circle,#3298e8 1.1px,transparent 1.6px);background-size:14px 14px;opacity:.12;transform:skewY(-18deg) rotate(6deg);pointer-events:none}
.sa-policy-hero:after{content:"";position:absolute;right:-82px;bottom:-112px;width:280px;height:280px;border:1px solid rgba(17,191,165,.16);border-radius:50%;box-shadow:-110px -34px 0 -76px rgba(154,245,196,.18);pointer-events:none}
.sa-policy-hero>*{position:relative;z-index:1}
.sa-policy-hero p{margin:0 0 9px;color:#11bfa5;font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.sa-policy-hero h1{max-width:720px;margin:0;color:#0c5250;font-size:clamp(2rem,4vw,3.4rem);font-weight:600;line-height:1.02;letter-spacing:0}
.sa-policy-hero span{display:block;max-width:620px;margin-top:14px;color:#526977;font-size:.92rem;line-height:1.55}
.sa-policy-hero a{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 18px;border:1px solid rgba(17,191,165,.34);border-radius:13px;background:rgba(255,255,255,.78);color:#0c7771;font-size:.84rem;font-weight:600;white-space:nowrap;box-shadow:0 10px 22px rgba(22,60,72,.06)}
.sa-policy-hero a:hover{background:#e9faf5;border-color:rgba(17,191,165,.52)}
.sa-policy-hero svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sa-policy-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sa-policy-summary article{position:relative;display:grid;gap:7px;min-height:118px;padding:20px;border:1px solid rgba(12,82,80,.12);border-radius:20px;background:rgba(255,255,255,.78);box-shadow:0 12px 28px rgba(22,60,72,.06);overflow:hidden}
.sa-policy-summary article:after{content:"";position:absolute;right:-28px;bottom:-42px;width:118px;height:118px;border-radius:50%;background:radial-gradient(circle,rgba(17,191,165,.13),rgba(50,152,232,.06) 62%,transparent 70%)}
.sa-policy-summary span{position:relative;z-index:1;color:#667985;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.sa-policy-summary strong{position:relative;z-index:1;color:#0c5250;font-size:1.05rem;font-weight:600}
.sa-policy-summary p{position:relative;z-index:1;margin:0;color:#526977;font-size:.78rem;line-height:1.42}
.sa-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sa-policy-card{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr);gap:18px;align-items:start;min-height:172px;padding:22px;border:1px solid rgba(12,82,80,.12);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(250,255,253,.78));box-shadow:0 14px 34px rgba(22,60,72,.07);overflow:hidden}
.sa-policy-card:nth-child(3n+2){background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(242,249,255,.78))}
.sa-policy-card:nth-child(3n){background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(239,255,249,.78))}
.sa-policy-card:before{content:"";position:absolute;right:-55px;top:-70px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(50,152,232,.11),rgba(17,191,165,.05) 58%,transparent 70%);pointer-events:none}
.sa-policy-number{position:relative;z-index:1;display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(17,191,165,.22);border-radius:18px;background:#e9faf5;color:#0c7771;font-size:.86rem;font-weight:600;letter-spacing:.06em}
.sa-policy-card div{position:relative;z-index:1;display:grid;gap:7px}
.sa-policy-card p{margin:0;color:#11bfa5;font-size:.64rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}
.sa-policy-card h2{margin:0;color:#17334a;font-size:1.12rem;font-weight:600;line-height:1.2}
.sa-policy-card div span{color:#445a5c;font-size:.92rem;line-height:1.6}
.sa-rates-hero{background:
  radial-gradient(circle at 88% 18%,rgba(255,112,83,.12),transparent 24%),
  radial-gradient(circle at 10% 100%,rgba(17,191,165,.18),transparent 28%),
  linear-gradient(135deg,rgba(255,255,255,.92),rgba(244,253,255,.78))}
.sa-rates-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.sa-rate-card{position:relative;grid-column:span 2;display:grid;align-content:space-between;gap:12px;min-height:220px;padding:24px;border:1px solid rgba(12,82,80,.12);border-radius:24px;background:rgba(255,255,255,.86);box-shadow:0 14px 34px rgba(22,60,72,.08);overflow:hidden}
.sa-rate-card:nth-child(1),.sa-rate-card:nth-child(2){grid-column:span 3}
.sa-rate-card:before{content:"";position:absolute;right:-72px;bottom:-86px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(17,191,165,.18),rgba(50,152,232,.06) 62%,transparent 70%);pointer-events:none}
.sa-rate-card:after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:#11bfa5}
.sa-rate-card.is-blue:before{background:radial-gradient(circle,rgba(50,152,232,.18),rgba(17,191,165,.06) 62%,transparent 70%)}
.sa-rate-card.is-blue:after{background:#3298e8}
.sa-rate-card.is-green:after{background:#20b77a}
.sa-rate-card.is-amber:before{background:radial-gradient(circle,rgba(255,112,83,.16),rgba(17,191,165,.05) 62%,transparent 70%)}
.sa-rate-card.is-amber:after{background:#ff7053}
.sa-rate-card.is-dark{background:linear-gradient(145deg,#0e3837,#0b2426);color:#fff}
.sa-rate-card.is-dark:before{background:radial-gradient(circle,rgba(17,191,165,.26),rgba(50,152,232,.10) 62%,transparent 70%)}
.sa-rate-card.is-dark:after{background:linear-gradient(90deg,#11bfa5,#3298e8)}
.sa-rate-card span,.sa-rate-card h2,.sa-rate-card p,.sa-rate-card strong{position:relative;z-index:1}
.sa-rate-card span{color:#667985;font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.sa-rate-card h2{margin:0;color:#17334a;font-size:1.28rem;font-weight:600;line-height:1.16}
.sa-rate-card p{margin:0;color:#526977;font-size:.86rem;line-height:1.4}
.sa-rate-card strong{align-self:end;color:#0c7771;font-size:2.55rem;font-weight:600;line-height:.95;letter-spacing:-.02em}
.sa-rate-card small{margin-left:8px;color:#667985;font-size:.84rem;font-weight:500;letter-spacing:0}
.sa-rate-card.is-dark span,.sa-rate-card.is-dark p,.sa-rate-card.is-dark small{color:rgba(255,255,255,.72)}
.sa-rate-card.is-dark h2,.sa-rate-card.is-dark strong{color:#fff}
.sa-advantages-hero{background:
  radial-gradient(circle at 88% 18%,rgba(17,191,165,.18),transparent 24%),
  radial-gradient(circle at 10% 100%,rgba(50,152,232,.14),transparent 28%),
  linear-gradient(135deg,rgba(255,255,255,.94),rgba(242,255,251,.78))}
.sa-advantages-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.sa-advantage-card{position:relative;display:grid;grid-template-rows:auto 1fr;border:1px solid rgba(12,82,80,.12);border-radius:22px;background:rgba(255,255,255,.86);box-shadow:0 16px 38px rgba(22,60,72,.08);overflow:hidden}
.sa-advantage-media{display:grid;place-items:center;aspect-ratio:1672/941;background:#f6fbfa;overflow:hidden}
.sa-advantage-media picture,.sa-advantage-media img{display:block;width:100%;height:100%}
.sa-advantage-media img{object-fit:cover;object-position:center}
.sa-advantage-content{display:grid;gap:12px;align-content:start;padding:22px}
.sa-advantage-content h2{margin:0;color:#17334a;font-size:1.12rem;font-weight:650}
.sa-advantage-content p{margin:0;color:#526977;font-size:.9rem;line-height:1.5}
.sa-advantage-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.sa-advantage-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 14px;border:1px solid rgba(17,191,165,.36);border-radius:10px;background:#ecfbf7;color:#0c7771;font-size:.8rem;font-weight:700;text-decoration:none}
.sa-advantage-actions a:hover{background:#ddf4ef;border-color:rgba(17,191,165,.56)}
.sa-profile-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sa-profile-form label{display:grid;gap:6px;color:#667985;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em}
.sa-profile-form input{width:100%;min-height:42px;border:1px solid rgba(12,82,80,.16);border-radius:10px;background:#f9fcfb;color:#17334a;font-size:.94rem;padding:0 12px}
.sa-profile-form button{grid-column:span 2;min-height:44px;border:0;border-radius:10px;background:#0c7771;color:#fff;font-weight:600}
.sa-calendar-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sa-calendar-pair article{display:grid;gap:10px;padding:14px;border:1px solid rgba(12,82,80,.14);border-radius:14px;background:#fbfcfb}
.sa-calendar-pair h3{margin:0;color:#17334a;font-size:.94rem;font-weight:500}
.sa-weekdays,.sa-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.sa-weekdays span{display:grid;place-items:center;color:#667985;font-size:.72rem}
.sa-days span,.sa-days b{display:grid;place-items:center;min-height:34px;border-radius:8px;color:#17334a;font-size:.82rem;font-weight:500}
.sa-days b{border:1px solid rgba(12,82,80,.12);background:#fff}
.sa-days b span{min-height:auto;color:inherit;font-size:inherit;font-weight:inherit}
.sa-days b em{margin-top:1px;color:inherit;font-size:.54rem;font-style:normal;font-weight:500;line-height:1;opacity:.72}
.sa-days b.is-class{border-color:rgba(17,191,165,.26);background:#e9faf5;color:#0c7771}
.sa-days b.is-off{border-color:rgba(216,59,72,.2);background:#fff0f2;color:#b7313e}
.sa-modal[hidden]{display:none}
.sa-modal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:22px;background:rgba(7,19,17,.54)}
.sa-modal-panel{position:relative;width:min(980px,100%);max-height:min(86vh,760px);overflow:auto;display:grid;gap:16px;padding:24px;border-radius:22px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.28)}
.sa-profile-modal{width:min(720px,100%)}
.sa-training-success{width:min(430px,100%);overflow:hidden;text-align:center;background:linear-gradient(145deg,#fff 0%,#f2fffb 58%,#e8f7ff 100%)}
.sa-training-success:before{content:"";position:absolute;right:-46px;top:-50px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(17,191,165,.24),rgba(50,152,232,.04) 68%,transparent 70%)}
.sa-training-success:after{content:"";position:absolute;left:-28px;bottom:-40px;width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,rgba(50,152,232,.16),rgba(154,245,196,.2))}
.sa-training-success>*{position:relative;z-index:1}
.sa-training-success-icon{justify-self:center;display:grid;place-items:center;width:72px;height:72px;border:1px solid rgba(17,191,165,.28);border-radius:22px;background:rgba(255,255,255,.72);box-shadow:0 18px 42px rgba(17,191,165,.14)}
.sa-training-success-icon svg{width:36px;height:36px;fill:none;stroke:#12bfa9;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sa-training-success p{margin:0;color:#526977;font-size:.92rem;line-height:1.55}
.sa-birthdays-modal{width:min(600px,100%);gap:18px;background:radial-gradient(circle at 88% 8%,rgba(17,191,165,.13),transparent 30%),linear-gradient(145deg,#fff 0%,#fbfffd 58%,#eef8ff 100%)}
.sa-birthdays-modal>header{display:grid;gap:6px;padding-right:42px}
.sa-birthdays-modal>header p{margin:0;color:#667985;font-size:.78rem;line-height:1.4}
.sa-birthday-calendar-list{display:grid;gap:9px;max-height:52vh;overflow:auto;padding-right:4px}
.sa-birthday-calendar-list article{display:grid;grid-template-columns:48px minmax(0,1fr);gap:13px;align-items:center;padding:10px 4px;border-bottom:1px solid rgba(12,82,80,.08)}
.sa-birthday-calendar-list article:last-child{border-bottom:0}
.sa-birthday-calendar-list time{color:#0c7771;font-size:.78rem;font-weight:500}
.sa-birthday-calendar-list div{display:grid;min-width:0}
.sa-birthday-calendar-list strong{color:#415863;font-size:.88rem;font-weight:400;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sa-birthday-calendar-empty{display:grid;justify-items:center;gap:10px;padding:24px 18px;border:1px solid rgba(12,82,80,.1);border-radius:18px;background:rgba(255,255,255,.68);text-align:center}
.sa-birthday-calendar-empty p{margin:0;color:#526977;font-size:.9rem}
.sa-modal-panel>header h2{margin:0;color:#17334a;font-size:1rem;font-weight:600}
.sa-modal-close{position:absolute;top:14px;right:14px;width:38px;min-height:38px!important;border:1px solid rgba(12,82,80,.14)!important;border-radius:12px!important;background:#fff!important;color:#667985!important;font-size:1.25rem!important;line-height:1;cursor:pointer}
body.sa-modal-open{overflow:hidden}
@media(prefers-reduced-motion:reduce){.sa-card,.sa-header-actions a,.sa-header-actions button{transition:none}.sa-card:hover,.sa-header-actions a:hover,.sa-header-actions button:hover{transform:none}}
@media(max-width:1199px){
  .sa-shell{padding:16px;gap:16px}
  .sa-header{min-height:46px}
  .sa-brand img{width:104px}
  .sa-hero-row{grid-template-columns:minmax(0,1fr);align-items:start;padding:4px 4px 0}
  .sa-timeline-wrap{justify-self:end;width:min(760px,100%)}
  .sa-card{padding:22px;border-radius:20px}
  .sa-gift-card,.sa-side-gift-card{padding:0}
  .sa-main-grid{grid-template-columns:minmax(220px,260px) minmax(0,1fr);grid-template-areas:"next center" "side side";gap:14px}
  .sa-center-stack{grid-area:center;gap:14px;height:100%}
  .sa-next-card{grid-area:next}
  .sa-next-card{min-height:380px;padding:24px 14px 10px}
  .sa-next-date strong{font-size:2.85rem}
  .sa-days-ring{width:116px;height:116px;margin:20px 0 12px}
  .sa-side-stack{grid-area:side;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .sa-classmates-card{height:280px}
  .sa-side-gift-card{height:auto;min-height:0;aspect-ratio:163/96}
  .sa-bottom-grid{grid-template-columns:1fr 1fr;gap:14px}
  .sa-community-hub{grid-column:1/-1}
  .sa-community-rules-card{grid-column:span 1}
  .sa-bottom-grid .sa-card{height:180px;min-height:180px}
  .sa-community-rules-card.sa-image-card,.sa-gift-card{aspect-ratio:1983/793}
  .sa-bottom-grid .sa-image-card{height:auto;min-height:0;aspect-ratio:1983/793}
  .sa-bottom-grid .sa-image-card a,.sa-bottom-grid .sa-image-card picture{height:100%}
  .sa-bottom-grid .sa-image-card img{height:100%;object-fit:cover;object-position:center}
  .sa-community-bubbles{grid-template-columns:1fr 1fr}
  .sa-community-birthday-bubble{grid-column:1/-1}
  .sa-community-hub{height:auto;min-height:0}
  .sa-bottom-grid .sa-community-hub{height:auto;min-height:0}
  .sa-footer{grid-template-columns:1fr;justify-items:center;gap:14px}
  .sa-footer-brand,.sa-footer-actions{justify-self:center}
  .sa-stats-summary{grid-template-columns:minmax(0,1fr) 185px}
  .sa-stats-intro,.sa-stats-billing{padding:13px}
  .sa-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
  .sa-stats-grid article{min-height:50px;padding:9px 10px}
  .sa-stats-grid .sa-stat-label{font-size:.48rem;letter-spacing:.09em}
  .sa-stats-grid strong{min-width:20px;font-size:1rem}
  .sa-next-training-card{grid-template-columns:1fr;align-content:center;gap:18px;padding:24px}
  .sa-policy-shell{width:100%}
  .sa-policy-hero{padding:28px}
  .sa-policy-grid{grid-template-columns:1fr}
  .sa-advantages-grid{grid-template-columns:1fr}
  .sa-policy-card{min-height:0}
  .sa-rates-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sa-rate-card,.sa-rate-card:nth-child(1),.sa-rate-card:nth-child(2){grid-column:span 1}
}
@media(max-width:900px){
  .sa-side-stack{grid-template-columns:1fr}
  .sa-side-gift-card{width:100%;aspect-ratio:163/96}
  .sa-bottom-grid{grid-template-columns:1fr}
  .sa-community-rules-card{grid-column:1/-1}
  .sa-bottom-grid .sa-image-card{height:auto;min-height:0;aspect-ratio:1983/793}
  .sa-bottom-grid .sa-image-card img{width:100%;height:100%;object-fit:cover;object-position:center}
}
@media(max-width:767px){
  .sp-main{overflow-x:hidden}
  .sa-shell{padding:12px;gap:12px}
  .sa-header{display:grid;grid-template-columns:1fr;justify-items:center;gap:10px;padding:0 0 10px}
  .sa-brand img{width:96px}
  .sa-header-actions{justify-content:center;flex-wrap:wrap;gap:8px;max-width:300px;padding-top:0}
  .sa-header-actions a,.sa-header-actions button{width:40px;min-height:40px;border-radius:11px}
  .sa-hero-row{gap:16px;padding:2px 0 0}
  .sa-welcome{text-align:center}
  .sa-welcome h1{font-size:2rem}
  .sa-timeline-wrap{justify-self:stretch;width:100%}
  .sa-timeline{display:flex;overflow:auto;padding:6px 2px 4px;gap:18px}
  .sa-timeline:before{display:none}
  .sa-timeline-item{min-width:150px;padding:0;background:transparent}
  .sa-main-grid,.sa-side-stack,.sa-bottom-grid{grid-template-columns:1fr;grid-template-areas:none}
  .sa-center-stack{grid-area:auto;height:auto}
  .sa-community-bubbles{grid-template-columns:1fr}
  .sa-community-birthday-bubble{grid-column:auto}
  .sa-community-area-wide{grid-template-columns:42px minmax(0,1fr)}
  .sa-community-feature-list{grid-template-columns:1fr}
  .sa-footer-actions{flex-wrap:wrap;justify-content:center}
  .sa-next-card,.sa-side-stack{grid-area:auto}
  .sa-card{padding:18px;border-radius:18px}
  .sa-next-card{min-height:360px;padding:22px 16px 12px}
  .sa-next-date{margin-top:10px}
  .sa-next-date strong{font-size:2.55rem}
  .sa-days-ring{width:106px;height:106px;margin:18px 0 10px}
  .sa-next-training-card{min-height:0;gap:16px}
  .sa-stats-card:after{right:-90px;bottom:-110px;width:210px;height:210px;background:radial-gradient(circle,rgba(17,191,165,.14),rgba(50,152,232,.05) 62%,transparent 70%)}
  .sa-stats-summary{grid-template-columns:1fr;gap:8px}
  .sa-stats-intro,.sa-stats-billing{padding:12px}
  .sa-stats-billing{align-content:start}
  .sa-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .sa-stats-grid article{min-height:48px;padding:9px 10px;border-radius:13px}
  .sa-stats-grid strong{font-size:1rem}
  .sa-next-training-card h3{font-size:1.05rem}
  .sa-next-training-card span{font-size:.86rem}
  .sa-policy-hero{display:grid;align-items:start;padding:22px;border-radius:20px}
  .sa-policy-hero h1{font-size:2rem}
  .sa-policy-hero span{font-size:.84rem}
  .sa-policy-hero a{justify-self:start;min-height:40px}
  .sa-policy-summary{grid-template-columns:1fr;gap:10px}
  .sa-policy-summary article{min-height:0;padding:16px;border-radius:16px}
  .sa-policy-card{grid-template-columns:48px minmax(0,1fr);gap:14px;padding:16px;border-radius:18px}
  .sa-policy-number{width:44px;height:44px;border-radius:14px;font-size:.76rem}
  .sa-policy-card h2{font-size:1rem}
  .sa-policy-card div span{font-size:.82rem;line-height:1.52}
  .sa-rates-grid{grid-template-columns:1fr;gap:10px}
  .sa-rate-card{min-height:168px;padding:18px;border-radius:18px}
  .sa-rate-card strong{font-size:2rem}
  .sa-classmates-card{order:5}
  .sa-side-gift-card{order:4}
  .sa-classmates-card{height:auto;min-height:280px}
  .sa-side-gift-card{height:auto;min-height:0;aspect-ratio:163/96}
  .sa-community-hub{order:6;height:auto;min-height:0}
  .sa-community-rules-card{order:7;grid-template-columns:1fr}
  .sa-bottom-grid .sa-card{height:158px;min-height:158px}
  .sa-bottom-grid .sa-community-hub{height:auto;min-height:0}
  .sa-community-rules-card.sa-image-card,.sa-gift-card{height:auto;min-height:0;padding:0}
  .sa-community-rules-card.sa-image-card{aspect-ratio:2.5/1}
  .sa-gift-card{aspect-ratio:163/96}
  .sa-community-rules-card.sa-image-card a,.sa-community-rules-card.sa-image-card picture{height:100%}
  .sa-community-rules-card.sa-image-card img,.sa-gift-card img{height:100%;border-radius:inherit}
  .sa-side-gift-card img{object-fit:cover;object-position:center}
  .sa-community-rules-card section+section{border-left:0;border-top:1px solid rgba(12,82,80,.11)}
  .sa-community-bubble{min-height:0;padding:15px}
  .sa-community-action{grid-column:1/-1}
  .sa-footer{padding-top:16px}
  .sa-footer-partner{width:min(170px,58vw)}
  .sa-calendar-pair,.sa-profile-form{grid-template-columns:1fr}
  .sa-profile-form button{grid-column:auto}
  .sa-modal{padding:12px}
  .sa-modal-panel{max-height:88vh;padding:20px;border-radius:18px}
  .sa-days span,.sa-days b{min-height:31px;font-size:.76rem}
  .sa-weekdays,.sa-days{gap:4px}
}
@media(max-width:420px){
  .sp-form-grid,.sp-age-options{grid-template-columns:1fr}
  .sp-age-options button{min-height:78px}
  .sa-shell{padding:10px}
  .sa-header-actions{max-width:260px}
  .sa-header-actions a,.sa-header-actions button{width:38px;min-height:38px}
  .sa-welcome h1{font-size:1.75rem}
  .sa-card{padding:16px}
  .sa-next-card{min-height:340px}
  .sa-stats-grid{grid-template-columns:1fr}
  .sa-bottom-grid .sa-card{height:auto;min-height:0}
}
