:root{--color-primary:#0f766e;--color-on-primary:#fff;--color-accent:#d97706;--color-background:#f0fdfa;--color-foreground:#134e4a;--color-surface:#fff;--color-muted:#ccfbf1;--color-border:#99f6e4;--color-destructive:#dc2626;--color-success:#15803d;--color-muted-fg:#5b7c78;--font-heading:"Nunito", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--radius:12px;--safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box}html,body{min-height:100dvh}body{font-family:var(--font-body);color:var(--color-foreground);background:radial-gradient(ellipse 120% 80% at 10% -20%, #99f6e4 0%, transparent 55%), radial-gradient(ellipse 80% 60% at 100% 0%, #fde68a 0%, transparent 45%), var(--color-background);-webkit-tap-highlight-color:transparent;touch-action:manipulation;margin:0;font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--font-heading);margin:0 0 .5rem;line-height:1.2}p{margin:0 0 1rem}a{color:var(--color-primary)}.app-shell{width:min(100%,420px);min-height:100dvh;padding:20px 20px calc(88px + var(--safe-bottom));flex-direction:column;margin:0 auto;display:flex}.app-shell.no-cta{padding-bottom:calc(24px + var(--safe-bottom))}.brand{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--color-primary);font-size:1.75rem;font-weight:900}.brand-link{align-items:center;text-decoration:none;display:inline-flex}.back-link{color:var(--color-muted-fg);align-items:center;gap:.35rem;width:fit-content;min-height:40px;margin:0 0 .75rem;padding:.35rem 0;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover,.back-link:focus-visible{color:var(--color-primary);outline:none}.brand-logo{width:auto;height:36px}.muted{color:var(--color-muted-fg)}.btn{min-height:48px;font-family:var(--font-body);cursor:pointer;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem 1.25rem;font-size:1rem;font-weight:700;text-decoration:none;transition:transform .18s,opacity .18s,background .18s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-accent{background:var(--color-accent);color:#fff}.btn-secondary{border-color:var(--color-primary);color:var(--color-primary);background:0 0}.btn-ghost{color:var(--color-foreground);border-color:var(--color-border);background:0 0}.cta-bar{width:min(100%,420px);padding:12px 20px calc(12px + var(--safe-bottom));background:linear-gradient(to top, var(--color-background) 70%, transparent);z-index:40;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.field{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.field label{font-size:.9rem;font-weight:600}.field input,.field select{border:1.5px solid var(--color-border);border-radius:var(--radius);min-height:48px;font:inherit;background:var(--color-surface);color:var(--color-foreground);padding:.65rem .9rem}.field input:focus,.field select:focus{outline:3px solid color-mix(in srgb, var(--color-primary) 35%, transparent);border-color:var(--color-primary)}.stack{flex-direction:column;gap:.75rem;display:flex}.chip{background:var(--color-muted);color:var(--color-foreground);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .7rem;font-size:.8rem;font-weight:700;display:inline-flex}.chip.ready{color:#92400e;background:#fef3c7}.chip.paid{color:var(--color-success);background:#dcfce7}.chip.expired{color:var(--color-destructive);background:#fee2e2}.panel{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:calc(var(--radius) + 4px);padding:1rem}.module-list{margin:.75rem 0 0;padding:0;list-style:none}.module-item{border-bottom:1px solid var(--color-muted);padding:.65rem 0}.module-item:last-child{border-bottom:none;padding-bottom:0}.module-body{flex:1;min-width:0;display:block}.module-title-row{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.module-title{font-weight:700}.module-price{white-space:nowrap;color:var(--color-primary);font-size:.95rem;font-weight:700}.module-desc{margin:.25rem 0 0;font-size:.9rem;line-height:1.35}.module-select-row{cursor:pointer;align-items:flex-start;gap:.75rem;display:flex}.module-select-row input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--color-primary);flex-shrink:0;margin-top:.3rem}.member-row{border-bottom:1px solid var(--color-muted);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.member-row:last-child{border-bottom:none}.price-row{justify-content:space-between;gap:1rem;margin:.35rem 0;display:flex}.price-row.total{margin-top:.75rem;font-size:1.1rem;font-weight:800}.savings{color:var(--color-accent);font-weight:700}.countdown{border-radius:var(--radius);color:#9a3412;background:#fff7ed;border:1.5px solid #fdba74;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.75rem 1rem;display:flex}.countdown-label{font-size:.9rem;font-weight:600}.countdown-value{font-family:var(--font-heading);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:1.15rem;font-weight:800}.countdown-urgent{color:var(--color-destructive);background:#fef2f2;border-color:#fca5a5}.countdown-expired{color:var(--color-destructive);background:#fee2e2;border-color:#fca5a5}.alert{border-radius:var(--radius);color:var(--color-destructive);background:#fee2e2;margin-bottom:1rem;padding:.75rem 1rem}.alert.info{background:var(--color-muted);color:var(--color-foreground)}.hero-entry{flex-direction:column;flex:1;justify-content:center;gap:1rem;padding-top:2rem;display:flex}.hero-entry h1{font-size:clamp(1.75rem,7vw,2.15rem);font-weight:900}.invite-actions{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.lang-switcher{border:1.5px solid var(--color-border);background:var(--color-surface);border-radius:999px;flex-shrink:0;align-items:center;display:inline-flex;overflow:hidden}.lang-btn{appearance:none;color:var(--color-muted-fg);font-family:var(--font-body);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;min-height:32px;padding:.35rem .55rem;font-size:.75rem;font-weight:700}.lang-btn.active{background:var(--color-primary);color:var(--color-on-primary)}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:active:not(:disabled){transform:none}}
