:root{--bg: #fbfaf7;--card: #ffffff;--ink: #14231c;--sub: #6b7a72;--line: #eceae3;--green: #1e5945;--green-soft: #7bc0a3;--gold: #e0a458;--warn: #e07a5f;--mint: #eaf4ee}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}html{overflow-x:hidden;overscroll-behavior-x:none}.bj-shell{max-width:430px;margin:0 auto;min-height:100dvh;padding:24px 20px 40px;display:flex;flex-direction:column}.bj-auth-hero{text-align:center;margin:28px 0 20px;display:flex;flex-direction:column;align-items:center}.bj-auth-hero h1{font-size:26px;margin:12px 0 6px;color:var(--green)}.bj-logo-lockup{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0 6px}.bj-logo-lockup h1{margin:0}.bj-logo-mark{height:36px;width:auto;display:block}.bj-auth-hero p{color:var(--sub);margin:0;font-size:15px;line-height:1.5}.bj-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 2px 10px #14231c0a}.bj-field{display:block;margin-bottom:14px}.bj-field span{display:block;font-size:13px;font-weight:600;color:var(--sub);margin-bottom:6px}.bj-field input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:16px;background:var(--bg);color:var(--ink);outline:none}.bj-field input:focus{border-color:var(--green-soft)}.bj-btn{width:100%;padding:13px;border:none;border-radius:12px;background:var(--green);color:#fff;font-size:16px;font-weight:700;cursor:pointer}.bj-btn:disabled{opacity:.6;cursor:default}.bj-btn-ghost{background:none;border:none;color:var(--green);font-size:14px;font-weight:600;cursor:pointer;padding:8px}.bj-tabs{display:flex;gap:8px;margin-bottom:16px}.bj-tab{flex:1;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--sub);font-weight:700;font-size:14px;cursor:pointer}.bj-tab.active{background:var(--mint);border-color:var(--green-soft);color:var(--green)}.bj-msg{border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.45;margin-bottom:14px}.bj-msg.ok{background:var(--mint);color:var(--green)}.bj-msg.err{background:#fdeeea;color:var(--warn)}.bj-mascot{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}@keyframes bjBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}@keyframes bjHop{0%,to{transform:translateY(0)}30%{transform:translateY(-8px)}55%{transform:translateY(0)}75%{transform:translateY(-4px)}}@keyframes bjTada{0%,to{transform:scale(1) rotate(0)}20%{transform:scale(1.06) rotate(-3deg)}40%{transform:scale(1.06) rotate(3deg)}60%{transform:scale(1.04) rotate(-2deg)}80%{transform:scale(1.02) rotate(1deg)}}.bj-mascot-idle,.bj-mascot-thankful{animation:bjBreathe 3s ease-in-out infinite}.bj-mascot-happy,.bj-mascot-hello{animation:bjHop 1.2s ease}.bj-mascot-celebrate,.bj-mascot-proud{animation:bjTada 1.4s ease}@media (prefers-reduced-motion: reduce){.bj-mascot{animation:none!important}}.bj-footnote{text-align:center;color:var(--sub);font-size:13px;margin-top:auto;padding-top:24px;line-height:1.5}*{box-sizing:border-box}.bj-root{min-height:100vh;background:#fbfaf7;display:flex;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,system-ui,sans-serif;color:#14231c}.bj-frame{width:100%;max-width:440px;min-height:100vh;position:relative;background:#fbfaf7;overflow:hidden;touch-action:pan-y pinch-zoom}.bj-pills,.bj-chips{touch-action:pan-x pan-y}.bj-h{font-size:24px;font-weight:700;letter-spacing:-.4px;margin:0 0 8px}.bj-setup{min-height:100vh;min-height:100dvh;box-sizing:border-box}.bj-setup .bj-h{font-size:28px}.bj-setup .bj-p{font-size:17px;line-height:1.5}.bj-setup label{font-size:15px!important}.bj-setup .bj-select{font-size:16px}.bj-h2{font-size:20px;font-weight:700;letter-spacing:-.3px;margin:0 0 6px}.bj-p{color:#6b7a72;font-size:16px;line-height:1.5;margin:0 0 8px}.bj-panel{background:#fff;border-radius:20px;padding:22px;box-shadow:0 2px 20px #14231c0d}.bj-card{background:#fff;border-radius:18px;padding:16px;box-shadow:0 1px 12px #14231c0a}.bj-primary{width:100%;margin-top:18px;background:#1e5945;color:#fff;border:none;border-radius:14px;padding:15px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .1s,opacity .2s}.bj-primary:active{transform:scale(.98)}.bj-primary:disabled{opacity:.4;cursor:default}.bj-bar{width:100%;background:#eceae3;border-radius:99px;overflow:hidden}.bj-money{display:flex;align-items:center;gap:6px;background:#eaf4ee;border-radius:14px;padding:12px 14px;font-size:22px;font-weight:600}.bj-money input{border:none;background:transparent;font:inherit;color:#14231c;width:100%;outline:none}.bj-cur{color:#6b7a72;font-size:.6em}.bj-input{width:100%;margin-top:10px;border:1px solid #ECEAE3;background:#fff;border-radius:12px;padding:12px 14px;font-size:16px;outline:none}.bj-input:focus{border-color:#7bc0a3}.bj-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:440px;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid #ECEAE3;display:flex;padding:8px 6px calc(8px + env(safe-area-inset-bottom));z-index:20}.bj-navbtn{flex:1;background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;color:#6b7a72;cursor:pointer;padding:6px 0;opacity:.55}.bj-navbtn.on{opacity:1;color:#1e5945}.bj-fab{position:fixed;bottom:calc(74px + env(safe-area-inset-bottom));left:50%;transform:translate(min(140px,calc(50vw - 72px)));width:56px;height:56px;border-radius:50%;background:#1e5945;color:#fff;font-size:28px;border:none;box-shadow:0 6px 20px #1e594559;cursor:pointer;z-index:21;display:grid;place-items:center}.bj-fab:active{transform:translate(140px) scale(.94)}.bj-chip{border:1px solid #ECEAE3;background:#fff;border-radius:99px;padding:8px 14px;font-size:14px;font-weight:600;color:#1e5945;cursor:pointer}.bj-chip.solid{background:#1e5945;color:#fff;border:none;white-space:nowrap}.bj-catrow{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;border-bottom:1px solid #ECEAE3;padding:12px 2px;font-size:15px;cursor:pointer;color:#14231c;text-align:left}.bj-catbar{display:block;width:100%;background:none;border:none;padding:9px 6px;margin:0 -6px;width:calc(100% + 12px);cursor:pointer;color:#14231c;text-align:left;border-radius:12px}.bj-catbar.on{background:#eaf4ee}.bj-catbar>span{display:flex}.bj-catgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.bj-cat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;border:1.5px solid #ECEAE3;background:#fff;border-radius:14px;cursor:pointer;color:#14231c}.bj-cat.on{font-weight:600}.bj-sheet-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#14231c59;display:flex;align-items:flex-end;justify-content:center;z-index:40}.bj-sheet{width:100%;max-width:440px;background:#fbfaf7;border-radius:24px 24px 0 0;padding:14px 20px calc(24px + env(safe-area-inset-bottom));max-height:88vh;max-height:88dvh;overflow:auto}.bj-sheet-actions{position:sticky;bottom:calc(-24px - env(safe-area-inset-bottom));background:#fbfaf7;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.bj-sheet-handle{width:40px;height:4px;border-radius:99px;background:#eceae3;margin:2px auto 14px}@keyframes bjUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bj-toast{position:fixed;top:calc(16px + env(safe-area-inset-top));left:50%;transform:translate(-50%);background:#14231c;color:#fff;padding:12px 18px;border-radius:14px;font-size:15px;z-index:60;max-width:88%;text-align:center;box-shadow:0 8px 24px #0003;animation:bjFade .3s ease}@keyframes bjFade{0%{opacity:0}}.bj-trail{margin-top:14px}.bj-stage{display:flex;gap:14px;padding-bottom:22px;position:relative}.bj-stage:not(:last-child):before{content:"";position:absolute;left:19px;top:40px;bottom:0;width:2px;background:#eceae3}.bj-stage.locked{opacity:.5}.bj-stage-dot{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:18px;color:#fff;flex-shrink:0;z-index:1}.bj-textbtn{background:none;border:none;color:#1e5945;font-size:15px;text-decoration:underline;cursor:pointer;margin-top:8px;padding:0;text-align:left}.bj-friend{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #ECEAE3;font-size:15px}.bj-lvlpath{display:flex;justify-content:center;gap:6px;margin-top:12px;flex-wrap:wrap}.bj-lvldot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eceae3;font-size:15px;opacity:.45}.bj-lvldot.on{background:#eaf4ee;opacity:1}.bj-lvldot.para{background:#eaf4ee;opacity:.7}.bj-lesson{width:100%;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #ECEAE3;border-radius:14px;padding:12px 14px;margin-bottom:8px;cursor:pointer;color:#14231c}.bj-quizopt{width:100%;text-align:left;border:1.5px solid #ECEAE3;background:#fff;border-radius:12px;padding:12px 14px;font-size:15px;margin-top:8px;cursor:pointer;color:#14231c}.bj-quizopt.sel{border-color:#1e5945;background:#eaf4ee}.bj-quizopt.good{border-color:#1e5945;background:#eaf4ee;font-weight:600}.bj-quizopt.bad{border-color:#e07a5f;background:#fcede8}.bj-seg{display:flex;background:#eceae3;border-radius:12px;padding:3px;margin:8px 0 14px}.bj-seg button{flex:1;border:none;background:transparent;padding:8px;border-radius:10px;font-size:14px;font-weight:600;color:#6b7a72;cursor:pointer}.bj-seg button.on{background:#fff;color:#14231c;box-shadow:0 1px 4px #00000014}.bj-exp{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #ECEAE3}.bj-exp>div{min-width:0;overflow-wrap:anywhere}.bj-err{box-shadow:0 0 0 1.5px #c44536!important;animation:bjShake .3s ease}@keyframes bjShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (prefers-reduced-motion: reduce){.bj-err{animation:none}}.bj-swipe{position:relative;overflow:hidden}.bj-swipe-del{position:absolute;top:0;bottom:1px;right:0;border:none;border-radius:0;background:#c44536;color:#fff;font-weight:700;font-size:13px;cursor:pointer}.bj-swipe-row{position:relative;background:#fbfaf7;transition:transform .18s ease;touch-action:pan-y}.bj-swipe-card{border-radius:18px}.bj-swipe-card .bj-swipe-row{background:transparent}.bj-swipe-card .bj-swipe-del{bottom:0;border-radius:0 18px 18px 0}@media (prefers-reduced-motion: reduce){.bj-swipe-row{transition:none}}.bj-monthnav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-6px 0 12px}.bj-monthnav span{font-size:14px;font-weight:600;color:#14231c}.bj-monthnav button{width:34px;height:34px;flex-shrink:0;border:1px solid #ECEAE3;background:#fff;border-radius:10px;font-size:18px;line-height:1;color:#14231c;cursor:pointer}.bj-monthnav button:disabled{opacity:.3;cursor:default}.bj-bubble-plain:before{display:none}.bj-flip{flex:1;border:none;background:none;padding:0;cursor:pointer;perspective:800px;min-height:86px;display:block}.bj-flip-inner{display:block;position:relative;width:100%;height:100%;min-height:86px;transition:transform .55s cubic-bezier(.32,.72,0,1);transform-style:preserve-3d}.bj-flip.on .bj-flip-inner{transform:rotateY(180deg)}.bj-flip-face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;gap:4px;text-align:left;backface-visibility:hidden;-webkit-backface-visibility:hidden}.bj-flip-back{transform:rotateY(180deg)}@media (prefers-reduced-motion: reduce){.bj-flip-inner{transition:none}}.bj-frame{transition:transform .28s cubic-bezier(.32,.72,0,1),filter .28s ease;transform-origin:50% 0}.bj-frame.bj-behind{transform:scale(.94) translateY(8px);filter:brightness(.92)}@keyframes bjTabNext{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}@keyframes bjTabPrev{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:none}}.bj-tabview{animation:bjTabNext .28s cubic-bezier(.32,.72,0,1) both}.bj-tab-prev{animation-name:bjTabPrev}.bj-card,.bj-catrow,.bj-exp{transition:transform .12s ease}button.bj-card:active{transform:scale(.985)}@media (prefers-reduced-motion: reduce){.bj-frame,.bj-frame.bj-behind{transition:none;transform:none;filter:none}.bj-tabview{animation:none}.bj-bar-fill,circle{transition:none!important}}.bj-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.bj-chips::-webkit-scrollbar{display:none}.bj-chip{flex-shrink:0;display:flex;align-items:center;gap:5px;border:1px solid #ECEAE3;background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;color:#14231c;cursor:pointer}.bj-chip strong{font-weight:700}.bj-chip .note{color:#6b7a72;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bj-chip:active{background:#eaf4ee;border-color:#7bc0a3}.bj-ybars{display:flex;align-items:flex-end;gap:5px;height:130px;margin-top:14px}.bj-ybar{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.bj-ybar .bar{width:100%;border-radius:6px 6px 2px 2px;min-height:2px;transition:height .4s ease}.bj-ybar .lbl{font-size:9px;color:#6b7a72}.bj-edu{width:30px;height:30px;border-radius:50%;border:1.5px solid #7BC0A3;background:#eaf4ee;color:#1e5945;font-size:16px;font-weight:700;cursor:pointer;flex-shrink:0;line-height:1}.bj-badge{background:#fbf3e4;color:#e0a458;border:1px solid #E0A458;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:700;white-space:nowrap}.bj-bubble{position:relative;width:100%;background:#eaf4ee;border-radius:16px;padding:12px 16px;margin-top:12px}.bj-bubble:before{content:"";position:absolute;top:-14px;left:50%;transform:translate(-50%);border:8px solid transparent;border-bottom-color:#eaf4ee;border-top:none}.bj-account-btn{position:fixed;top:calc(10px + env(safe-area-inset-top));left:14px;z-index:30;width:38px;height:38px;border-radius:50%;border:1px solid #ECEAE3;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:18px;cursor:pointer;box-shadow:0 2px 8px #14231c14;display:grid;place-items:center;padding:0}.bj-back{position:absolute;top:14px;left:14px;z-index:5;width:38px;height:38px;border-radius:50%;border:1px solid #ECEAE3;background:#fff;font-size:18px;color:#1e5945;cursor:pointer;box-shadow:0 2px 8px #14231c14;display:grid;place-items:center;padding:0}.bj-confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:80;overflow:hidden}.bj-confetti span{position:absolute;top:-10px;width:8px;height:12px;border-radius:2px;animation:bjFall 1.3s ease-in forwards}@keyframes bjFall{to{transform:translateY(105vh) rotate(360deg);opacity:0}}.bj-select{width:100%;border:1px solid #ECEAE3;background:#fff;border-radius:12px;padding:10px 12px;font-size:16px;color:#14231c;outline:none;margin-top:2px}.bj-select:focus{border-color:#7bc0a3}.bj-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;border-radius:99px;outline:none;margin:6px 0}.bj-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid #1E5945;box-shadow:0 1px 4px #0003;cursor:pointer}.bj-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #1E5945;cursor:pointer}.bj-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.bj-cal .hd{font-size:11px;color:#6b7a72;padding:2px 0 6px;font-weight:600}.bj-cal .day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 0}.bj-cal .day .nr{font-size:13px;font-weight:600;width:24px;height:24px;display:grid;place-items:center;border-radius:50%}.bj-cal .day.today .nr{background:#1e5945;color:#fff}.bj-cal .day.future{opacity:.35}.bj-cal .day .amt{font-size:9px;color:#6b7a72;min-height:10px;font-weight:600}@media (prefers-reduced-motion: reduce){*,*:before{animation:none!important;transition:none!important}}.bj-hero-row{display:flex;align-items:center;gap:12px}.bj-hero-row .bj-mascot-hero{flex-shrink:0}.bj-bubble-side{flex:1;margin-top:0}.bj-bubble-side:before{top:50%;left:-14px;transform:translateY(-50%);border:8px solid transparent;border-right-color:#eaf4ee;border-top:8px solid transparent}.bj-inline-stat{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;padding:0 2px;font-size:13px;color:#6e7d74}.bj-inline-stat strong{font-size:18px;font-weight:700;color:#1e5945}@keyframes bjSolPop{0%{opacity:0;transform:translateY(14px) scale(.7)}to{opacity:1;transform:none}}.bj-sol-float{position:fixed;right:12px;bottom:calc(150px + env(safe-area-inset-bottom));z-index:30;pointer-events:none;animation:bjSolPop .3s cubic-bezier(.32,.72,0,1) both;filter:drop-shadow(0 6px 16px rgba(20,35,28,.25))}@media (prefers-reduced-motion: reduce){.bj-sol-float{animation:none}}.bj-scene{position:relative;width:208px;height:208px;margin:26px auto 0}.bj-scene-sol{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.bj-pills{display:flex;gap:10px;overflow-x:auto;padding:10px 2px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.bj-pills::-webkit-scrollbar{display:none}.bj-pill{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid #ECEAE3;background:#fff;border-radius:16px;padding:8px 10px 6px;cursor:pointer;transition:transform .12s ease}.bj-pill:active{transform:scale(.95)}.bj-pill-pct{font-size:11px;font-weight:700;color:#1e5945}.bj-actioncard{flex:1;display:flex;align-items:center;gap:10px;border:1px solid #ECEAE3;text-align:left;cursor:pointer;padding:12px 14px}.bj-actioncard:active{transform:scale(.97)}.bj-actioncard-green{border:1px solid #7BC0A3;background:#eaf4ee}.bj-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.bj-welcome-sol{margin-bottom:6px}.bj-toast-undo{margin-left:12px;border:none;background:#ffffff29;color:#fff;font-weight:700;font-size:15px;padding:6px 12px;border-radius:10px;cursor:pointer}
