@import"https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;700;800&family=Nunito:wght@500;700;800&display=swap";:root{--bb-sky: #7ec8f8;--bb-sky-deep: #3aa0e6;--bb-coral: #ff8b7a;--bb-lemon: #ffe566;--bb-mint: #7de3c2;--bb-blush: #ffd6e7;--bb-ink: #2b2a45;--bb-cream: #fff9f2;--bb-white: #ffffff;--bb-shadow: 0 10px 30px rgba(43, 42, 69, .12);--bb-radius: 22px;--bb-font-display: "Baloo 2", "Comic Sans MS", cursive;--bb-font-body: "Nunito", "Trebuchet MS", sans-serif}.bb-root{color:var(--bb-ink);font-family:var(--bb-font-body);background:radial-gradient(circle at 10% 10%,#fff1c9 0%,transparent 40%),radial-gradient(circle at 90% 20%,#d9f4ff 0%,transparent 42%),radial-gradient(circle at 50% 100%,#ffe0ef 0%,transparent 45%),linear-gradient(180deg,#fffdf8,#eef9ff);min-height:100%}.bb-title{font-family:var(--bb-font-display);font-weight:800;letter-spacing:.02em;margin:0}.bb-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:999px;padding:.75rem 1.35rem;font-family:var(--bb-font-body);font-weight:800;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:var(--bb-shadow)}.bb-btn:hover{transform:translateY(-2px) scale(1.02)}.bb-btn:active{transform:translateY(0) scale(.98)}.bb-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.bb-icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:2.1rem;height:2.1rem;border-radius:999px;border:2px solid #ffe0b5;background:var(--bb-white);box-shadow:var(--bb-shadow);cursor:pointer;display:inline-grid;place-items:center;font-size:1rem;line-height:1;padding:0;transition:transform .15s ease,box-shadow .15s ease}.bb-icon-btn:hover{transform:translateY(-1px) scale(1.05)}.bb-icon-btn-danger{border-color:#f2b8b8}.bb-btn-primary{background:linear-gradient(135deg,var(--bb-coral),#ffb347);color:var(--bb-white)}.bb-btn-danger{background:linear-gradient(135deg,#e85d4c,#c62828);color:var(--bb-white)}.bb-award-controls{display:grid;grid-template-columns:repeat(2,4.5rem);gap:.45rem;width:max-content}.bb-award-controls>.bb-btn:not(.bb-award-reset){width:100%;justify-content:center;box-sizing:border-box}.bb-award-reset{grid-column:1 / -1;width:100%;justify-content:center;box-sizing:border-box}.bb-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center;padding:1rem;background:#2b2a4573;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:bb-fade .2s ease}.bb-modal{width:min(92vw,420px);background:linear-gradient(165deg,#fffdf8,#fff5ea);border:3px solid #fff;border-radius:24px;box-shadow:0 24px 60px #2b2a4547;padding:1.4rem 1.35rem 1.25rem;animation:bb-modal-in .28s cubic-bezier(.2,1.3,.3,1)}.bb-modal-danger{border-color:#ffd0c8}.bb-modal-title{font-family:var(--bb-font-display);font-size:1.7rem;margin:0 0 .55rem;color:var(--bb-ink)}.bb-modal-danger .bb-modal-title{color:#c62828}.bb-modal-message{margin:0 0 1.15rem;font-weight:700;line-height:1.4;opacity:.9}.bb-modal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.55rem}.bb-modal-field{display:flex;flex-direction:column;gap:.35rem;font-weight:800}.bb-modal-field .bb-input{width:100%;box-sizing:border-box}.bb-modal-field-hint{font-weight:600;opacity:.7}@keyframes bb-modal-in{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.bb-btn-secondary{background:linear-gradient(135deg,var(--bb-sky),var(--bb-mint));color:var(--bb-ink)}.bb-btn-ghost{background:var(--bb-white);color:var(--bb-ink);border:2px solid #ffe0b5}.bb-card-soft{background:#ffffffd1;border-radius:var(--bb-radius);box-shadow:var(--bb-shadow);border:3px solid #fff;padding:1rem}.bb-points-star{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff7b0,var(--bb-lemon) 55%,#ffc933);box-shadow:0 8px #f0b400,var(--bb-shadow);animation:bb-bob 2.4s ease-in-out infinite}.bb-points-star strong{font-family:var(--bb-font-display);font-size:1.8rem;line-height:1}.bb-points-star span{font-size:.75rem;font-weight:800;letter-spacing:.08em}@keyframes bb-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.bb-goal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.bb-goal-grid-single{grid-template-columns:minmax(180px,280px)}.bb-goal-tile{background:var(--bb-white);border-radius:18px;border:3px solid #ffd9a8;padding:.85rem .75rem;text-align:center;font-weight:800;box-shadow:var(--bb-shadow);animation:bb-pop-in .45s ease both;display:flex;flex-direction:column;gap:.35rem;min-width:0}.bb-goal-tile-done{background:linear-gradient(160deg,#f3fff8,#fff)}.bb-goal-tile .bb-icon{font-size:1.8rem;display:block;line-height:1}.bb-goal-tile-label{font-size:.95rem;line-height:1.2}.bb-goal-progress-meta{display:flex;justify-content:space-between;align-items:baseline;gap:.35rem;font-size:.8rem;font-weight:800}.bb-goal-progress-track{width:100%;height:.55rem;border-radius:999px;background:#f0f0f5;overflow:hidden}.bb-goal-progress-fill{height:100%;border-radius:999px;transition:width .25s ease}@keyframes bb-pop-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.bb-mood-btn{font-size:2.4rem;background:#fff;border:3px dashed var(--bb-coral);border-radius:20px;width:72px;height:72px;cursor:pointer;transition:transform .15s ease}.bb-mood-btn:hover{transform:rotate(-8deg) scale(1.08)}.bb-sheet{width:100%;border-collapse:separate;border-spacing:0 .55rem}.bb-sheet th{text-align:left;font-family:var(--bb-font-display);font-size:1.05rem;padding:.35rem .6rem;color:var(--bb-sky-deep)}.bb-sheet td{background:#ffffffe6;padding:.7rem .65rem;border-top:2px solid #fff3d6;border-bottom:2px solid #fff3d6}.bb-sheet td:first-child{border-left:2px solid #fff3d6;border-radius:16px 0 0 16px}.bb-student-cell{position:relative;vertical-align:top;min-width:160px;padding-bottom:3rem!important}.bb-student-card{display:block}.bb-student-actions{position:absolute;left:.65rem;bottom:.55rem;display:flex;flex-direction:row;align-items:center;gap:.35rem}.bb-sheet td:last-child{border-right:2px solid #fff3d6;border-radius:0 16px 16px 0}.bb-assign{display:flex;flex-direction:column;gap:.45rem;min-width:210px;max-width:280px;width:100%}.bb-assign-count{font-size:.8rem;font-weight:800;opacity:.75}.bb-chip-row{display:flex;flex-wrap:wrap;gap:.35rem;width:100%;max-width:100%}.bb-chip-row:not(.bb-chip-row-column) .bb-chip{flex:0 1 auto;max-width:100%}.bb-chip-row-column{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:.4rem}.bb-chip{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;padding:.28rem .35rem .28rem .55rem;border-radius:999px;border:2px solid #ffd0a8;background:linear-gradient(135deg,#fff9f2,#ffe8c8);font-weight:800;font-size:.82rem;line-height:1.1}.bb-chip-rowish{display:grid;grid-template-columns:1.4rem minmax(0,1fr) 2.6rem 1.35rem;align-items:center;column-gap:.4rem;width:100%;max-width:none;border-radius:14px;padding:.4rem .4rem .4rem .55rem}.bb-chip-icon{text-align:center;line-height:1}.bb-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.bb-chip-meta{opacity:.75;font-size:.78rem;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;justify-self:end}.bb-chip-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:#2b2a4514;width:1.35rem;height:1.35rem;border-radius:999px;cursor:pointer;font-weight:900;line-height:1;color:var(--bb-ink);flex-shrink:0}.bb-chip-remove:hover{background:#e85d4c33;color:#c62828}.bb-assign-control{position:relative}.bb-assign-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .75rem;border-radius:14px;border:2px solid #ffe0b5;background:var(--bb-white);font-family:var(--bb-font-body);font-weight:800;color:var(--bb-ink);cursor:pointer;box-shadow:var(--bb-shadow)}.bb-assign-trigger:hover{border-color:var(--bb-sky-deep)}.bb-assign-dropdown{position:absolute;z-index:40;top:calc(100% + .3rem);left:0;right:0;min-width:220px;background:#fff;border:2px solid #ffe0b5;border-radius:16px;box-shadow:0 14px 30px #2b2a4529;padding:.45rem}.bb-assign-dropdown-portal{position:fixed;z-index:1300;top:auto;right:auto;display:flex;flex-direction:column;min-width:220px;max-width:min(92vw,320px);box-sizing:border-box}.bb-assign-search{width:100%;box-sizing:border-box;border:2px solid #ffe0b5;border-radius:12px;padding:.45rem .65rem;font-family:var(--bb-font-body);font-weight:700;margin-bottom:.35rem;flex-shrink:0}.bb-assign-options{flex:1 1 auto;min-height:0;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:.2rem}.bb-assign-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;text-align:left;display:flex;align-items:center;gap:.45rem;padding:.45rem .55rem;border-radius:12px;font-family:var(--bb-font-body);font-weight:800;cursor:pointer;color:var(--bb-ink)}.bb-assign-option:hover{background:#fff4e4}.bb-assign-option-other{border-top:1px solid #ffe8c8;margin-top:.15rem;color:var(--bb-sky-deep)}.bb-assign-empty{padding:.55rem;font-size:.82rem;font-weight:700;opacity:.7}.bb-assign-custom{display:flex;flex-direction:column;gap:.5rem}.bb-assign-custom-label{display:flex;flex-direction:column;gap:.3rem;font-weight:800;font-size:.85rem}.bb-reward-choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.65rem}.bb-reward-choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;text-align:left;padding:.85rem 1rem;border-radius:18px;border:3px solid #ffe0b5;background:#ffffffeb;box-shadow:var(--bb-shadow);cursor:pointer;font-family:var(--bb-font-body);color:var(--bb-ink);transition:transform .15s ease,border-color .15s ease}.bb-reward-choice span[aria-hidden]{font-size:1.6rem;line-height:1}.bb-reward-choice strong{font-size:1rem}.bb-reward-choice em{font-style:normal;font-size:.8rem;font-weight:800;color:#e85d4c}.bb-reward-choice:hover{transform:translateY(-2px)}.bb-reward-choice-selected{border-color:var(--bb-coral);background:linear-gradient(160deg,#fff8f5,#ffe9c4)}.bb-burst-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:#2b2a4559;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:bb-fade .25s ease}.bb-burst{position:relative;width:min(90vw,360px);aspect-ratio:1;display:grid;place-items:center;text-align:center;padding:2rem;border-radius:40% 45%;animation:bb-burst-in .45s cubic-bezier(.2,1.4,.3,1);box-shadow:var(--bb-shadow)}.bb-burst.halfway,.bb-burst.almost{background:radial-gradient(circle,#fff59d,#ffd54f);color:#e53935}.bb-burst.earned{background:radial-gradient(circle,#ff8fab,#ff4d8d);color:#3d5afe}.bb-burst-overlay-point{background:#2b2a4538;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.bb-burst.point-pop{width:min(86vw,300px);aspect-ratio:auto;min-height:180px;border-radius:28px;background:radial-gradient(circle at 30% 20%,#fff9d6,#7ec8f8 55%,#ffb6d9);color:var(--bb-ink);padding:1.4rem 1.2rem}.bb-burst.point-pop h2{font-size:clamp(2.4rem,8vw,3.4rem);color:#fff;text-shadow:0 3px 0 rgba(43,42,69,.25)}.bb-point-name{color:#c62828;font-family:var(--bb-font-display);font-size:1.35em}.bb-point-bubbles{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.bb-point-bubble{position:absolute;bottom:-24px;border-radius:50%;opacity:.85;box-shadow:inset -3px -3px #ffffff59;animation:bb-bubble-up ease-out forwards}@keyframes bb-bubble-up{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:.9}to{transform:translateY(-110vh) scale(1.15);opacity:0}}.bb-burst h2{font-family:var(--bb-font-display);font-size:clamp(1.5rem,5vw,2.2rem);margin:0;line-height:1.15;font-style:italic}.bb-burst .bb-big-points{font-size:2.6rem;color:var(--bb-lemon);text-shadow:0 2px 0 #2b2a45}@keyframes bb-burst-in{0%{transform:scale(.4) rotate(-8deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes bb-fade{0%{opacity:0}to{opacity:1}}.bb-confetti{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.bb-confetti i{position:absolute;top:-12px;width:10px;height:16px;border-radius:2px;animation:bb-fall linear forwards}@keyframes bb-fall{to{transform:translateY(110vh) rotate(540deg);opacity:.85}}.bb-mini-overlay{position:fixed;top:12px;right:12px;z-index:9999;display:flex;align-items:center;gap:.45rem;background:#fffffff2;border:3px solid var(--bb-lemon);border-radius:999px;padding:.35rem .7rem .35rem .35rem;box-shadow:var(--bb-shadow);font-weight:800}.bb-mini-overlay .bb-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--bb-blush);font-size:1.3rem}.bb-select,.bb-input{width:100%;border:2px solid #ffd7a8;border-radius:14px;padding:.55rem .7rem;font-family:var(--bb-font-body);font-weight:700;background:#fff}.bb-stack{display:flex;flex-direction:column;gap:1rem}.bb-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--bb-font-body, "Nunito", sans-serif)}a{color:inherit}.pl-notice{background:linear-gradient(150deg,#fff8ee,#f3fbff);border:2px solid #ffdfae;border-radius:18px;padding:1rem 1.1rem;box-shadow:0 6px 18px #2b2a4514}.pl-notice-head{display:flex;gap:.7rem;align-items:flex-start}.pl-notice-icon{font-size:1.4rem;line-height:1.2;flex:none}.pl-notice-title{font-weight:800;margin:0;color:var(--bb-ink);line-height:1.4}.pl-notice-body{font-weight:600;margin:.3rem 0 0;line-height:1.5;color:var(--bb-ink);opacity:.8}.pl-notice-features{list-style:none;padding:0;margin:.75rem 0 0 2.1rem;display:grid;gap:.25rem}.pl-notice-features li{font-weight:700;font-size:.9rem;position:relative;padding-left:1.3rem}.pl-notice-features li:before{content:"✓";position:absolute;left:0;color:var(--bb-sky-deep);font-weight:800}.pl-notice-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.9rem}.pl-notice-actions .bb-btn{padding:.55rem 1.1rem;font-size:.92rem;min-height:44px}.bb-logo{display:flex;align-items:center;gap:.55rem;-webkit-user-select:none;user-select:none}.bb-logo img{display:block;flex:none}.bb-logo-word{font-family:var(--bb-font-display, "Baloo 2", cursive);font-weight:800;letter-spacing:.01em;line-height:1;color:var(--bb-sky-deep, #3aa0e6)}.pp-wrap{min-height:100vh;padding:1.25rem clamp(.75rem,3vw,2.5rem) 4rem;position:relative;overflow:hidden}.pp-topbar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.pp-title{font-family:var(--bb-font-display);font-weight:800;text-align:center;font-size:clamp(1.9rem,5.5vw,3.4rem);margin:.5rem 0 .25rem;color:var(--bb-ink);animation:pp-bob 2.6s ease-in-out infinite}.pp-subtitle{text-align:center;font-weight:800;font-size:clamp(1rem,2.4vw,1.35rem);color:var(--bb-sky-deep);margin:0 0 1.5rem}.pp-lanes{display:grid;gap:.85rem;max-width:980px;margin:0 auto}.pp-lane{display:grid;grid-template-columns:minmax(120px,200px) 1fr auto;align-items:center;gap:clamp(.5rem,2vw,1.25rem);background:#ffffffdb;border:3px solid #fff;border-radius:var(--bb-radius);box-shadow:var(--bb-shadow);padding:.6rem .9rem;animation:pp-pop .5s cubic-bezier(.2,1.4,.3,1) both}.pp-lane.pp-done{background:linear-gradient(120deg,#fff6d6,#ffe9f3);border-color:var(--bb-lemon)}.pp-who{display:flex;align-items:center;gap:.55rem;min-width:0}.pp-medal{font-size:1.5rem;width:1.7rem;text-align:center;flex:none}.pp-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--bb-blush);font-size:1.5rem;flex:none;box-shadow:inset 0 0 0 2px #fff}.pp-name{font-weight:800;font-size:1.05rem;color:var(--bb-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-track{position:relative;height:40px;border-radius:999px;background:repeating-linear-gradient(90deg,#eaf6ff,#eaf6ff 22px,#dcefff 22px,#dcefff 44px);border:2px solid #cfeaff;overflow:hidden}.pp-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,var(--bb-mint),var(--bb-sky));width:0;transition:width 1.1s cubic-bezier(.2,.9,.3,1)}.pp-lane.pp-done .pp-fill{background:linear-gradient(90deg,#ffd166,var(--bb-coral))}.pp-flag{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.25rem;opacity:.85}.pp-racer{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);font-size:1.6rem;transition:left 1.1s cubic-bezier(.2,.9,.3,1);filter:drop-shadow(0 3px 4px rgba(43,42,69,.25));animation:pp-hop 1.1s ease-in-out infinite}.pp-score{display:flex;flex-direction:column;align-items:center;min-width:64px}.pp-points{font-family:var(--bb-font-display);font-weight:800;font-size:1.9rem;line-height:1;color:var(--bb-coral)}.pp-of{font-weight:800;font-size:.75rem;opacity:.6}.pp-badge{margin-top:.15rem;font-weight:800;font-size:.7rem;color:#d17a00;background:var(--bb-lemon);border-radius:999px;padding:.1rem .5rem;animation:pp-twinkle 1.2s ease-in-out infinite}.pp-empty{text-align:center;font-weight:800;font-size:1.2rem;margin-top:2rem;color:var(--bb-ink)}.pp-cheer{text-align:center;font-weight:800;color:var(--bb-sky-deep);margin-top:1.75rem;font-size:1.05rem}.pp-balloon{position:absolute;bottom:-80px;font-size:2.2rem;opacity:.55;animation:pp-float linear infinite;pointer-events:none;z-index:0}.pp-lanes,.pp-title,.pp-subtitle,.pp-topbar,.pp-cheer{position:relative;z-index:1}@keyframes pp-bob{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}@keyframes pp-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pp-hop{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-68%)}}@keyframes pp-twinkle{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes pp-float{0%{transform:translateY(0)}to{transform:translateY(-115vh)}}@media (prefers-reduced-motion: reduce){.pp-title,.pp-racer,.pp-badge,.pp-balloon{animation:none}.pp-fill,.pp-racer{transition:none}}.ob-shell{min-height:100vh;padding:clamp(1rem,4vw,2.5rem) clamp(.75rem,4vw,2rem) 4rem}.ob-frame{width:min(760px,100%);margin:0 auto}.ob-wide{width:min(1100px,100%)}.ob-brand{margin:0 0 1.5rem}.ob-progress{display:flex;align-items:center;gap:.5rem;justify-content:center;margin-bottom:1.25rem}.ob-step-count{font-weight:800;font-size:.85rem;color:var(--bb-ink);opacity:.65}.ob-dots{display:flex;gap:.35rem}.ob-dot{width:30px;height:8px;border-radius:999px;background:#dcefff;transition:background .25s ease}.ob-dot-done{background:var(--bb-sky)}.ob-dot-current{background:var(--bb-sky-deep)}.ob-card{background:#ffffffeb;border:3px solid #fff;border-radius:var(--bb-radius);box-shadow:var(--bb-shadow);padding:clamp(1.25rem,4vw,2.25rem)}.ob-h1{font-family:var(--bb-font-display);font-weight:800;font-size:clamp(1.5rem,4vw,2.1rem);margin:0 0 .4rem;color:var(--bb-ink)}.ob-lede{font-weight:600;font-size:1.02rem;line-height:1.5;margin:0 0 1.5rem;color:var(--bb-ink);opacity:.78}.ob-field{display:block;margin-bottom:1.1rem}.ob-label{display:block;font-weight:800;margin-bottom:.35rem;color:var(--bb-ink)}.ob-optional{font-weight:700;opacity:.55;font-size:.88rem}.ob-hint{font-weight:600;font-size:.87rem;opacity:.68;margin:.3rem 0 0;line-height:1.45}.ob-input,.ob-select,.ob-textarea{width:100%;border-radius:14px;border:2px solid #dcefff;background:#fff;padding:.7rem .85rem;font-family:var(--bb-font-body);font-weight:700;font-size:1rem;color:var(--bb-ink)}.ob-textarea{min-height:96px;resize:vertical}.ob-input:focus,.ob-select:focus,.ob-textarea:focus{outline:3px solid var(--bb-sky);outline-offset:1px;border-color:var(--bb-sky)}.ob-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}@media (max-width: 560px){.ob-row{grid-template-columns:1fr}}.ob-choices{display:grid;gap:.85rem}.ob-choice{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;text-align:left;width:100%;background:#fff;border:3px solid #eaf6ff;border-radius:18px;padding:1.05rem 1.15rem;cursor:pointer;font-family:var(--bb-font-body);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.ob-choice:hover{transform:translateY(-2px);border-color:var(--bb-sky);box-shadow:var(--bb-shadow)}.ob-choice:focus-visible{outline:3px solid var(--bb-sky-deep);outline-offset:2px}.ob-choice-selected{border-color:var(--bb-sky-deep);background:linear-gradient(120deg,#f2fbff,#fff)}.ob-choice-icon{font-size:2rem;line-height:1;width:2.5rem;text-align:center}.ob-choice-title{display:block;font-weight:800;font-size:1.08rem;color:var(--bb-ink);margin:0}.ob-choice-desc{display:block;font-weight:600;font-size:.9rem;opacity:.7;margin:.15rem 0 0;line-height:1.4}.ob-choice-go{font-size:1.3rem;opacity:.4}.ob-actions{display:flex;gap:.75rem;align-items:center;margin-top:1.5rem;flex-wrap:wrap}.ob-actions-end{margin-left:auto}.ob-error{background:#fff1f0;border:2px solid #ffc9c4;border-radius:14px;padding:.75rem .9rem;font-weight:700;color:#b3261e;margin:0 0 1rem}.ob-note{background:#f2fbff;border:2px solid #cfeaff;border-radius:14px;padding:.85rem 1rem;font-weight:700;line-height:1.5;margin:0 0 1.15rem}.ob-plans{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start}.ob-plan{position:relative;background:#fff;border:3px solid #eaf6ff;border-radius:18px;padding:1.15rem;display:flex;flex-direction:column;gap:.6rem;height:100%}.ob-plan-recommended{border-color:var(--bb-sky-deep);box-shadow:var(--bb-shadow)}.ob-plan-selected{border-color:var(--bb-coral);background:linear-gradient(150deg,#fff8f6,#fff)}.ob-plan-flag{position:absolute;top:-13px;left:1rem;background:var(--bb-sky-deep);color:#fff;font-weight:800;font-size:.72rem;letter-spacing:.03em;border-radius:999px;padding:.22rem .7rem}.ob-plan-name{font-family:var(--bb-font-display);font-weight:800;font-size:1.35rem;margin:0}.ob-plan-tagline{font-weight:600;font-size:.9rem;opacity:.72;margin:0;line-height:1.45;min-height:2.6em}.ob-plan-price{font-family:var(--bb-font-display);font-weight:800;font-size:1.5rem;color:var(--bb-coral);margin:.15rem 0 0}.ob-plan-price-sub{font-weight:700;font-size:.84rem;opacity:.66;margin:0}.ob-plan-features{list-style:none;padding:0;margin:.4rem 0 0;display:grid;gap:.35rem}.ob-plan-features li{font-weight:700;font-size:.9rem;padding-left:1.4rem;position:relative;line-height:1.4}.ob-plan-features li:before{content:"✓";position:absolute;left:0;color:var(--bb-sky-deep);font-weight:800}.ob-plan-cta{margin-top:auto;padding-top:.75rem}.ob-bands{display:grid;gap:.45rem;margin-top:.3rem}.ob-band{display:flex;align-items:center;gap:.6rem;border:2px solid #eaf6ff;border-radius:12px;padding:.55rem .7rem;cursor:pointer;font-weight:700;font-size:.9rem}.ob-band-selected{border-color:var(--bb-sky-deep);background:#f5fcff}.ob-band input{accent-color:var(--bb-sky-deep);width:1.05rem;height:1.05rem}.ob-band-sub{display:block;font-weight:600;font-size:.8rem;opacity:.62}.ob-topbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.ob-topbar h1{font-family:var(--bb-font-display);font-weight:800;font-size:clamp(1.4rem,3.5vw,2rem);margin:0}.ob-tabs{display:flex;gap:.4rem;margin-bottom:1.25rem;flex-wrap:wrap}.ob-tab{border:none;background:#ffffffb3;border-radius:999px;padding:.5rem 1.1rem;font-family:var(--bb-font-body);font-weight:800;cursor:pointer;color:var(--bb-ink);opacity:.7}.ob-tab-active{background:var(--bb-sky-deep);color:#fff;opacity:1}.ob-stats{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:1.5rem}.ob-stat{background:#ffffffeb;border:3px solid #fff;border-radius:18px;box-shadow:var(--bb-shadow);padding:1rem 1.1rem}.ob-stat-value{font-family:var(--bb-font-display);font-weight:800;font-size:1.9rem;line-height:1.1;color:var(--bb-sky-deep)}.ob-stat-label{font-weight:800;font-size:.85rem;opacity:.66;margin-top:.1rem}.ob-meter{height:8px;border-radius:999px;background:#eaf6ff;margin-top:.55rem;overflow:hidden}.ob-meter-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--bb-mint),var(--bb-sky));transition:width .4s ease}.ob-meter-fill-warn{background:linear-gradient(90deg,#ffd166,var(--bb-coral))}.ob-list{display:grid;gap:.6rem}.ob-list-row{display:flex;align-items:center;gap:.85rem;background:#ffffffeb;border:2px solid #fff;border-radius:16px;padding:.75rem 1rem;box-shadow:0 4px 14px #2b2a4512;flex-wrap:wrap}.ob-list-main{min-width:0;flex:1}.ob-list-title{font-weight:800;margin:0;overflow:hidden;text-overflow:ellipsis}.ob-list-sub{font-weight:600;font-size:.86rem;opacity:.65;margin:.1rem 0 0;word-break:break-word}.ob-pill{font-weight:800;font-size:.72rem;letter-spacing:.02em;border-radius:999px;padding:.22rem .65rem;background:#eaf6ff;color:var(--bb-sky-deep);white-space:nowrap}.ob-pill-warn{background:#fff4d6;color:#a76a00}.ob-pill-good{background:#ddf7ee;color:#0f7a5a}.ob-pill-bad{background:#ffe6e3;color:#b3261e}.ob-empty{text-align:center;font-weight:700;opacity:.6;padding:1.75rem 1rem}.ob-copy-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.ob-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;background:#f4f8fb;border:1px solid #dcefff;border-radius:8px;padding:.3rem .5rem;word-break:break-all;flex:1;min-width:180px}.ob-section{margin-bottom:2rem}.ob-section-title{font-family:var(--bb-font-display);font-weight:800;font-size:1.2rem;margin:0 0 .75rem}.ob-spinner{text-align:center;font-weight:800;opacity:.6;padding:3rem 1rem}@media (prefers-reduced-motion: reduce){.ob-choice,.ob-meter-fill{transition:none}}.fm-shell{min-height:100vh;min-height:100dvh;padding:1rem 1rem 3rem}.fm-wrap{width:min(1040px,100%);margin:0 auto}.fm-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.fm-bar-title{font-family:var(--bb-font-display);font-weight:800;font-size:clamp(1.35rem,5vw,1.9rem);margin:0;min-width:0;flex:1}.fm-bar-actions{display:flex;gap:.4rem;flex-wrap:wrap}.fm-bar-actions .bb-btn,.fm-btn-sm{padding:.5rem .95rem;font-size:.9rem;min-height:44px}.fm-auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:1.25rem}.fm-card{background:#fffffff0;border:3px solid #fff;border-radius:var(--bb-radius);box-shadow:var(--bb-shadow);padding:clamp(1.15rem,5vw,2rem);width:min(430px,100%)}.fm-card-wide{width:min(720px,100%)}.fm-title{font-family:var(--bb-font-display);font-weight:800;font-size:clamp(1.5rem,6vw,2rem);margin:0 0 .4rem}.fm-lede{font-weight:600;line-height:1.5;opacity:.78;margin:0 0 1.25rem}.fm-field{display:block;margin-bottom:1rem}.fm-label{display:block;font-weight:800;margin-bottom:.3rem}.fm-input{width:100%;border-radius:14px;border:2px solid #dcefff;background:#fff;padding:.8rem .9rem;font-family:var(--bb-font-body);font-weight:700;font-size:16px;color:var(--bb-ink)}.fm-input:focus{outline:3px solid var(--bb-sky);outline-offset:1px;border-color:var(--bb-sky)}.pw-wrap{display:block;position:relative}.pw-input{padding-right:4.6rem}.pw-toggle{position:absolute;top:50%;right:.4rem;transform:translateY(-50%);border:none;background:transparent;font-family:var(--bb-font-body);font-weight:800;font-size:.85rem;color:var(--bb-sky-deep);cursor:pointer;min-width:3.6rem;min-height:40px;border-radius:10px}.pw-toggle:hover{background:#eaf6ff}.pw-toggle:focus-visible{outline:3px solid var(--bb-sky-deep);outline-offset:1px}.vc-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.9rem;letter-spacing:.42em;text-align:center;padding-left:.42em}.fm-hint{font-weight:600;font-size:.85rem;opacity:.65;margin:.35rem 0 0;line-height:1.45}.fm-error{background:#fff1f0;border:2px solid #ffc9c4;border-radius:14px;padding:.7rem .85rem;font-weight:700;color:#b3261e;margin:0 0 1rem;line-height:1.45}.fm-note{background:#f2fbff;border:2px solid #cfeaff;border-radius:14px;padding:.8rem .95rem;font-weight:700;line-height:1.5;margin:0 0 1.1rem}.fm-note-good{background:#eafaf3;border-color:#b7ead6}.fm-full{width:100%;min-height:48px}.fm-switch{text-align:center;font-weight:700;font-size:.92rem;margin:1rem 0 0}.fm-link{background:none;border:none;padding:0;font:inherit;color:var(--bb-sky-deep);font-weight:800;cursor:pointer;text-decoration:underline}.fm-children{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 620px){.fm-children{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}.fm-child{display:block;width:100%;text-align:left;background:#fffffff0;border:3px solid #fff;border-radius:20px;box-shadow:var(--bb-shadow);padding:1.1rem;cursor:pointer;font-family:var(--bb-font-body);color:var(--bb-ink);transition:transform .15s ease,border-color .15s ease}.fm-child:hover{transform:translateY(-2px);border-color:var(--bb-sky)}.fm-child:focus-visible{outline:3px solid var(--bb-sky-deep);outline-offset:2px}.fm-child-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.75rem}.fm-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--bb-blush);font-size:1.75rem;flex:none;box-shadow:inset 0 0 0 3px #fff}.fm-child-name{font-family:var(--bb-font-display);font-weight:800;font-size:1.3rem;margin:0;line-height:1.15;overflow-wrap:anywhere}.fm-child-where{font-weight:700;font-size:.85rem;opacity:.62;margin:.1rem 0 0;line-height:1.35;overflow-wrap:anywhere}.fm-badge{margin-left:auto;flex:none;background:var(--bb-lemon);color:#a76a00;font-weight:800;font-size:.72rem;border-radius:999px;padding:.2rem .55rem;white-space:nowrap}.fm-progress-label{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-weight:800;font-size:.88rem;margin-bottom:.3rem}.fm-progress-label span:last-child{opacity:.6;font-size:.82rem;white-space:nowrap}.fm-track{height:14px;border-radius:999px;background:#eaf6ff;overflow:hidden;border:2px solid #dcefff}.fm-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--bb-mint),var(--bb-sky));transition:width .5s cubic-bezier(.2,.9,.3,1)}.fm-fill-done{background:linear-gradient(90deg,#ffd166,var(--bb-coral))}.fm-goals{display:grid;gap:.6rem;margin-top:.9rem}.fm-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.fm-chip{background:#f2fbff;border:2px solid #dcefff;border-radius:999px;padding:.25rem .7rem;font-weight:700;font-size:.82rem}.fm-section{background:#fffffff0;border:3px solid #fff;border-radius:20px;box-shadow:var(--bb-shadow);padding:1.1rem;margin-bottom:1rem}.fm-section-title{font-family:var(--bb-font-display);font-weight:800;font-size:1.1rem;margin:0 0 .75rem}.fm-empty{text-align:center;font-weight:700;opacity:.6;padding:2.5rem 1rem;line-height:1.5}.fm-celebration{display:flex;gap:.6rem;align-items:flex-start;background:linear-gradient(120deg,#fff8e1,#fff);border:2px solid #ffe9b0;border-radius:14px;padding:.7rem .85rem;margin-bottom:.5rem;font-weight:700;line-height:1.45}.fm-invite-form{margin-top:.15rem}.fm-invite-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:stretch}.fm-invite-rel{flex:1 1 9rem;width:auto;min-width:0;height:3rem;padding-top:0;padding-bottom:0;box-sizing:border-box}.fm-invite-send{flex:2 1 12rem;height:3rem;padding-top:0;padding-bottom:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.fm-guardian-row{display:flex;align-items:center;gap:.7rem;padding:.65rem 0;border-bottom:1px solid #eef5fa;flex-wrap:wrap}.fm-guardian-row:last-child{border-bottom:none}.fm-guardian-main{flex:1;min-width:140px;overflow-wrap:anywhere}.fm-guardian-name{font-weight:800;margin:0;overflow-wrap:anywhere}.fm-guardian-sub{font-weight:600;font-size:.83rem;opacity:.62;margin:.1rem 0 0;overflow-wrap:anywhere}.fm-pill{font-weight:800;font-size:.72rem;border-radius:999px;padding:.2rem .6rem;background:#eaf6ff;color:var(--bb-sky-deep);white-space:nowrap}.fm-pill-pending{background:#fff4d6;color:#a76a00}@media (prefers-reduced-motion: reduce){.fm-child,.fm-fill{transition:none}}.fm-facts{margin:0 0 1rem;padding:.85rem 1rem;background:#f4f9fd;border-radius:14px;display:grid;grid-template-columns:auto 1fr;gap:.4rem .9rem;align-items:baseline}.fm-facts>div{display:contents}.fm-facts dt{margin:0;font-weight:800;font-size:.9rem;color:#5a5977}.fm-facts dd{margin:0;font-weight:700;font-size:.95rem;overflow-wrap:anywhere}@media (max-width: 380px){.fm-facts{grid-template-columns:1fr;gap:.15rem}.fm-facts dd{margin-bottom:.4rem}}.fm-class-tabs{display:flex;gap:.4rem;margin:0 0 .9rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:thin}.fm-class-tab{flex:0 0 auto;border:2px solid #cfeaff;background:#fff;color:#2b2a45;font:inherit;font-weight:800;font-size:.9rem;padding:.4rem .85rem;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;min-height:40px}.fm-class-tab-active{background:#3aa0e6;border-color:#3aa0e6;color:#fff}.fm-tab-dot{width:8px;height:8px;border-radius:50%;background:#ff8b7a}.fm-class-tab-active .fm-tab-dot{background:#ffe566}.fm-section-divided{margin-top:1.25rem;padding-top:1.15rem;border-top:1px solid #e7f1fa}.fm-dialog-actions{margin-top:1.5rem;padding-top:1.15rem;border-top:1px solid #e7f1fa}@media (max-width: 460px){.fm-guardian-row{align-items:flex-start;gap:.45rem .7rem}.fm-guardian-main{flex:1 1 100%;min-width:0}.fm-guardian-row>span[aria-hidden=true]{display:none}.fm-guardian-row .fm-pill{flex-basis:100%;max-width:fit-content;align-self:flex-start}.fm-guardian-row .fm-btn-sm{flex:1 1 auto}}
