:root{--bg: #fbeaf3;--bg2: #efe6ff;--text: #1d1424;--muted: rgba(60, 40, 70, .58);--sep: rgba(80, 40, 90, .1);--track: rgba(120, 60, 120, .12);--pink: #ff4f9a;--violet: #9b5cff;--blue: #3aa8f5;--green: #2fbf7f;--orange: #ff9f40;--accent: #ff4f9a;--glass: rgba(255, 255, 255, .55);--glass-strong: rgba(255, 255, 255, .72);--glass-thin: rgba(255, 255, 255, .38);--glass-edge: rgba(255, 255, 255, .85);--shadow: 0 10px 34px rgba(120, 40, 110, .12), 0 1px 2px rgba(120, 40, 110, .06);--r-xl: 30px;--r-lg: 24px;--r-md: 18px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #160f1c;--bg2: #1d1430;--text: #f8eefa;--muted: rgba(240, 220, 245, .6);--sep: rgba(255, 255, 255, .09);--track: rgba(255, 255, 255, .12);--glass: rgba(60, 40, 70, .5);--glass-strong: rgba(50, 34, 60, .78);--glass-thin: rgba(80, 60, 95, .35);--glass-edge: rgba(255, 255, 255, .16);--shadow: 0 10px 34px rgba(0, 0, 0, .4)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Rounded,SF Pro Text,ui-rounded,system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-user-select:none;user-select:none;font-size:16px}input,textarea,select{-webkit-user-select:text;user-select:text;font:inherit;color:inherit}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}h1,h2,h3,p{margin:0}b{font-weight:650}small{display:block;color:var(--muted);font-size:13px}.glass,.glass-thin{position:relative;isolation:isolate;background:var(--glass);-webkit-backdrop-filter:blur(28px) saturate(190%);backdrop-filter:blur(28px) saturate(190%);box-shadow:var(--shadow),inset 0 1px 0 var(--glass-edge),inset 0 0 0 .5px var(--glass-edge)}.glass-thin{background:var(--glass-thin);box-shadow:inset 0 1px 0 var(--glass-edge),inset 0 0 0 .5px var(--glass-edge)}.glass:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:linear-gradient(160deg,#ffffff8c,#fff0 42%);opacity:.7}@media(prefers-color-scheme:dark){.glass:before{opacity:.12}}.app{height:100%;position:relative;overflow:hidden}.ambient{position:fixed;inset:-20%;z-index:0;pointer-events:none;background:radial-gradient(40% 35% at 15% 10%,#ffc2e0 0%,transparent 70%),radial-gradient(45% 40% at 90% 20%,#dcc4ff 0%,transparent 70%),radial-gradient(50% 40% at 70% 90%,#bfe3ff 0%,transparent 70%),radial-gradient(40% 30% at 10% 80%,#ffe2c6 0%,transparent 70%);animation:drift 24s ease-in-out infinite alternate}@media(prefers-color-scheme:dark){.ambient{opacity:.28}}@keyframes drift{to{transform:translate3d(3%,-2%,0) rotate(4deg)}}.scroller{position:relative;z-index:1;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.screen{max-width:620px;margin:0 auto;padding:calc(var(--safe-t) + 14px) 16px calc(var(--safe-b) + 120px);display:flex;flex-direction:column;gap:14px;animation:rise .45s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.large-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:8px 4px 2px}.large-title h1{font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.eyebrow{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}.section-head{display:flex;align-items:baseline;justify-content:space-between;padding:8px 6px 0}h2{font-size:21px;font-weight:750;letter-spacing:-.01em}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.grow{flex:1;min-width:0}.row-between{display:flex;align-items:center;justify-content:space-between}.row-gap{display:flex;gap:8px;align-items:center}.stack{display:flex;flex-direction:column;gap:12px}.link{color:var(--accent);font-weight:600;font-size:16px}.footnote{font-size:13px;color:var(--muted);padding:0 8px;line-height:1.4}.center-self{align-self:center}.card{border-radius:var(--r-xl);padding:16px}.circle-btn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--track);flex:none;transition:transform .2s}.circle-btn:active{transform:scale(.9)}.circle-btn.tinted{width:44px;height:44px;background:linear-gradient(135deg,#ff7eb6,#b07cff);color:#fff;box-shadow:0 6px 18px #ff4f9a59,inset 0 1px #ffffff80}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 20px;border-radius:999px;background:linear-gradient(135deg,#ff6fae,#a46bff);color:#fff;font-weight:700;font-size:16px;text-decoration:none;white-space:nowrap;flex:none;box-shadow:0 8px 22px #ff4f9a52,inset 0 1px #ffffff73;transition:transform .2s cubic-bezier(.2,.8,.2,1),opacity .2s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.45}.btn.small{height:36px;padding:0 14px;font-size:15px}.btn.big{height:56px;font-size:18px;padding:0 28px;width:100%;max-width:420px}.btn.ghost{background:#ffffff4d;color:inherit;box-shadow:inset 0 0 0 1px #fff9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.btn.danger{background:#ff3b5c1f;color:#ff3b5c;box-shadow:none;width:100%;margin-top:8px}.text-btn{color:var(--accent);font-weight:700;font-size:17px;padding:6px 4px}.avatar-btn{width:46px;height:46px;border-radius:50%;font-weight:800;font-size:19px;display:grid;place-items:center;color:var(--pink);flex:none}.pill{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;background:var(--track);font-size:13px;font-weight:650;white-space:nowrap}.pill.green{background:#2fbf7f29;color:var(--green)}.segmented{position:relative;display:grid;grid-template-columns:repeat(var(--n),1fr);padding:3px;border-radius:999px}.segmented button{position:relative;z-index:1;height:36px;border-radius:999px;font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px;transition:color .25s}.segmented button.on{color:var(--text)}.seg-thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px) / var(--n));transform:translate(calc(100% * var(--i)));border-radius:999px;background:var(--glass-strong);box-shadow:0 3px 10px #00000014,inset 0 1px 0 var(--glass-edge);transition:transform .4s cubic-bezier(.3,1.3,.5,1)}.tabbar{position:fixed;z-index:20;left:50%;transform:translate(-50%);bottom:calc(var(--safe-b) + 12px);width:min(calc(100% - 24px),520px);height:66px;border-radius:999px;display:grid;grid-template-columns:repeat(5,1fr);padding:5px;background:var(--glass-strong)}.tabbar button{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);transition:color .25s,transform .2s}.tabbar button:active{transform:scale(.92)}.tabbar button.on{color:var(--pink)}.tabbar small{font-size:10.5px;font-weight:650;color:inherit}.tab-thumb{position:absolute;top:5px;bottom:5px;left:5px;width:calc((100% - 10px)/5);border-radius:999px;transform:translate(calc(100% * var(--i)));background:#ff4f9a1f;box-shadow:inset 0 0 0 .5px #ff4f9a2e;transition:transform .45s cubic-bezier(.3,1.35,.5,1)}.tab-ico{position:relative;display:grid;place-items:center}.dot{position:absolute;top:-5px;right:-10px;min-width:17px;height:17px;border-radius:9px;background:#ff3b5c;color:#fff;font-style:normal;font-size:11px;font-weight:800;display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px var(--bg)}.mascot-card{display:flex;gap:12px;align-items:center}.mascot{flex:none;animation:bob 3.2s ease-in-out infinite;filter:drop-shadow(0 6px 10px rgba(180,60,120,.2))}.mascot.mood-wow{animation:hop 1s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-4px) rotate(-2deg)}}@keyframes hop{50%{transform:translateY(-10px) scale(1.04)}}.bubble{flex:1;background:var(--glass-strong);border-radius:20px 20px 20px 6px;padding:10px 14px;box-shadow:inset 0 0 0 .5px var(--glass-edge)}.bubble b{color:var(--pink);font-size:14px}.bubble p{font-size:15px;line-height:1.35;margin-top:2px}.soon{margin-top:4px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{border-radius:var(--r-lg);padding:12px 10px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.stat b{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.stat small{font-size:12px}.stat-ico{font-size:20px;line-height:1;height:22px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:12px}.day{display:flex;flex-direction:column;align-items:center;gap:6px}.day small{font-size:11px;font-weight:600;text-transform:uppercase}.day span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:15px;background:var(--track)}.day.on span{background:linear-gradient(135deg,#ffe08a,#ffb340);box-shadow:0 4px 12px #ffb34066}.day.today span{outline:2px solid var(--pink);outline-offset:2px}.hw-scroller{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:4px 16px 10px;scrollbar-width:none}.hw-scroller::-webkit-scrollbar{display:none}.hw-tile{flex:none;width:70%;max-width:260px;min-height:176px;scroll-snap-align:start;border-radius:var(--r-xl);padding:16px;text-align:left;color:#fff;background:linear-gradient(145deg,var(--c1),var(--c2));display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden;box-shadow:0 12px 28px color-mix(in srgb,var(--c2) 45%,transparent),inset 0 1px #ffffff80;transition:transform .25s cubic-bezier(.2,.8,.2,1)}.hw-tile:active{transform:scale(.97)}.hw-tile:after{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 20% 0%,rgba(255,255,255,.45),transparent 60%);pointer-events:none}.hw-tile b{font-size:20px;font-weight:800}.hw-tile small{color:#ffffffe0}.hw-emoji{font-size:40px;margin-bottom:4px}.hw-cta{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:#ffffff4d;font-weight:700;font-size:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 .5px #ffffffb3}.hw-tile.done{filter:saturate(.75)}.list{border-radius:var(--r-lg);overflow:hidden}.list-row{display:flex;align-items:center;gap:12px;padding:12px 14px;width:100%;text-align:left;min-height:52px;position:relative}.list-row+.list-row:before,.check-row+.check-row:before{content:"";position:absolute;top:0;left:62px;right:0;height:.5px;background:var(--sep)}.list-row b{font-size:16px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:20px;flex:none}.link-row{color:var(--accent);font-weight:600;gap:8px}.form .list-row+.list-row:before{left:14px}.form .list-row span:first-child:not(.grow){width:96px;flex:none}.form input:not([type=checkbox]),.form select{flex:1;min-width:0;border:0;background:transparent;text-align:right;outline:none;font-size:16px;color:var(--muted)}.form input[type=date],.form input[type=time],.form select{flex:none;padding:6px 10px;border-radius:10px;background:var(--track);color:var(--text);-webkit-appearance:none;appearance:none;text-align:center}.field{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:var(--r-md)}.field span{font-size:13px;color:var(--muted);font-weight:600}.field input,.field textarea{border:0;background:transparent;outline:none;font-size:16px;resize:none}.switch{-webkit-appearance:none;appearance:none;width:52px;height:32px;border-radius:999px;background:var(--track);position:relative;transition:background .25s;flex:none;cursor:pointer}.switch:after{content:"";position:absolute;top:2px;left:2px;width:28px;height:28px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0003;transition:transform .3s cubic-bezier(.3,1.3,.5,1)}.switch:checked{background:var(--green)}.switch:checked:after{transform:translate(20px)}.hw-card{border-radius:var(--r-xl);padding:14px;display:flex;flex-direction:column;gap:10px}.hw-card-top{display:flex;gap:12px;align-items:center;cursor:pointer}.hw-badge{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:28px;background:linear-gradient(145deg,var(--c1),var(--c2));box-shadow:0 6px 16px color-mix(in srgb,var(--c2) 40%,transparent),inset 0 1px #ffffff80;flex:none}.hw-card-top b{font-size:18px}.hw-note{font-size:14px;background:var(--track);padding:8px 12px;border-radius:14px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:999px;background:var(--glass-thin);box-shadow:inset 0 0 0 .5px var(--sep);font-size:13px;font-weight:550}.chip.on{background:#ff4f9a24;box-shadow:inset 0 0 0 1.5px var(--pink)}.chip em{font-style:normal;font-size:11px;font-weight:800;color:#fff;background:var(--pink);width:18px;height:18px;border-radius:50%;display:grid;place-items:center}.chips.pick{max-height:280px;overflow-y:auto;padding:2px}.hw-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.prog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.prog{border-radius:20px;padding:14px;text-align:left;color:#fff;background:linear-gradient(145deg,var(--c1),var(--c2));display:flex;flex-direction:column;gap:2px;transition:transform .2s;opacity:.78}.prog span{font-size:28px}.prog small{color:#ffffffd9}.prog.on{opacity:1;transform:scale(1.02);box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--c2),0 10px 20px color-mix(in srgb,var(--c2) 40%,transparent)}.ex-info{display:flex;flex-direction:column;gap:14px}.ex-hero{height:150px;border-radius:var(--r-lg);display:grid;place-items:center;font-size:84px;background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--tint) 40%,transparent),color-mix(in srgb,var(--tint) 10%,transparent))}.steps{margin:0;padding:14px 14px 14px 36px;border-radius:var(--r-md);display:flex;flex-direction:column;gap:8px;font-size:16px;line-height:1.35;background:var(--glass-thin)}.steps li::marker{color:var(--pink);font-weight:800}.tip{padding:12px 14px;border-radius:var(--r-md);background:#ffb34024;font-size:15px;line-height:1.35}.sheet-wrap{position:fixed;inset:0;z-index:50;background:#1e0a2840;display:flex;align-items:flex-end;justify-content:center;animation:fade .3s}.sheet-wrap.out{animation:fadeOut .3s forwards}.sheet{width:100%;max-width:620px;max-height:92%;border-radius:34px 34px 0 0;background:var(--glass-strong);display:flex;flex-direction:column;animation:up .42s cubic-bezier(.2,.9,.25,1);padding-bottom:var(--safe-b)}.sheet-wrap.out .sheet{animation:down .3s forwards}@media(min-width:640px){.sheet-wrap{align-items:center}.sheet{border-radius:34px;max-height:86%}}.grabber{width:38px;height:5px;border-radius:3px;background:var(--track);margin:8px auto 0}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px 6px;gap:8px}.sheet-head h3{font-size:17px;font-weight:700;text-align:center;flex:1}.sheet-body{overflow-y:auto;padding:8px 16px 24px;display:flex;flex-direction:column;gap:14px;-webkit-user-select:none}@keyframes fade{0%{opacity:0}}@keyframes fadeOut{to{opacity:0}}@keyframes up{0%{transform:translateY(100%)}}@keyframes down{to{transform:translateY(100%)}}.player{position:fixed;inset:0;z-index:40;color:#fff;overflow-y:auto;animation:zoomIn .45s cubic-bezier(.2,.9,.25,1)}@keyframes zoomIn{0%{opacity:0;transform:scale(.94)}}.player-bg,.onboarding .player-bg{position:fixed;inset:0;z-index:-1;background:radial-gradient(60% 40% at 20% 10%,rgba(255,255,255,.35),transparent 70%),radial-gradient(50% 40% at 90% 90%,rgba(255,255,255,.2),transparent 70%),linear-gradient(160deg,var(--c1, #ffb3d9),var(--c2, #b07cff))}.player .glass,.player .glass-thin{background:#ffffff2e;box-shadow:inset 0 1px #ffffff8c,inset 0 0 0 .5px #ffffff80,0 10px 30px #00000014}.player .glass:before{opacity:.3}.player-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:calc(var(--safe-t) + 12px) 16px 8px}.player-head .circle-btn{color:#fff}.progress-dots{flex:1;display:flex;gap:4px}.progress-dots span{flex:1;height:5px;border-radius:3px;background:#ffffff4d;transition:background .3s}.progress-dots .done{background:#fff}.progress-dots .cur{background:#ffffffb3}.player-body{max-width:520px;margin:0 auto;padding:8px 20px calc(var(--safe-b) + 30px);display:flex;flex-direction:column;gap:14px;animation:rise .4s cubic-bezier(.2,.8,.2,1)}.player-body.center{align-items:center;text-align:center;padding-top:24px}.player-body .eyebrow{color:#fffc}.player-title{font-size:30px;font-weight:800;text-align:center;letter-spacing:-.02em;text-shadow:0 2px 12px rgba(0,0,0,.12)}.player-sub{font-size:17px;opacity:.92}.player .tip{background:#ffffff2e}.player .steps{background:#ffffff29}.player .steps li::marker{color:#fff}.player .btn.ghost{color:#fff}.player .btn:not(.ghost){background:#fff;color:#c2307a;box-shadow:0 10px 26px #00000026}.player .footnote,.player .muted{color:#fffc}.mini-list{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 12px;padding:12px 14px;border-radius:var(--r-md);font-size:14px;font-weight:600}.ex-stage{border-radius:36px;padding:18px;display:grid;place-items:center}.ring{position:relative;display:inline-grid;place-items:center}.ring>svg{position:absolute;inset:0}.ring-in{position:relative;display:flex;flex-direction:column;align-items:center;line-height:1}.big-emoji{font-size:64px;line-height:1.1}.timer{font-size:46px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer small{display:inline;color:#ffffffbf;font-size:22px}.rep-btn{display:flex;flex-direction:column;align-items:center;gap:10px;transition:transform .15s}.rep-btn:active{transform:scale(.96)}.tap-hint{color:#ffffffd9;font-weight:600}.player-actions{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:4px}.cheer{position:fixed;z-index:45;left:50%;top:40%;transform:translate(-50%,-50%);font-size:44px;font-weight:900;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.25);animation:pop .9s cubic-bezier(.2,.9,.25,1) forwards;pointer-events:none;white-space:nowrap}@keyframes pop{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}to{opacity:0;transform:translate(-50%,-90%) scale(1)}}.photo-card{width:100%;display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center;color:#fff}.photo-card img{width:100%;max-height:320px;object-fit:cover;border-radius:20px}.confetti{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}.confetti i{position:absolute;top:-20px;width:9px;height:14px;border-radius:3px;animation:fall linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:.9}}.day-row{display:flex;gap:12px;align-items:flex-start}.day-label{width:48px;flex:none;padding-top:12px;text-align:center}.day-label b{font-size:17px}.day-label small{font-size:10px;color:var(--pink);font-weight:700}.day-row.today .day-label b{color:var(--pink)}.day-items{display:flex;flex-direction:column;gap:8px}.rest{display:block;padding:14px 4px;color:var(--muted);font-size:14px;border-bottom:.5px dashed var(--sep)}.event{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:20px;text-align:left;width:100%}.event-time{font-weight:800;font-size:17px;font-variant-numeric:tabular-nums;width:52px;flex:none;border-right:3px solid var(--ec, var(--blue));padding-right:8px}.event-time small{font-weight:600}.event small,.comp small{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.comp{display:flex;gap:14px;align-items:center;padding:14px;border-radius:var(--r-xl);text-align:left;width:100%}.comp.past{opacity:.55}.comp-date{width:56px;height:60px;flex:none;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#ffcf70,#ff9f6b);color:#fff;box-shadow:0 6px 16px #ff9f6b66}.comp-date b{font-size:24px;line-height:1}.comp-date small{color:#fff;font-weight:700}.comp-note{margin-top:4px}.bag-hero{display:flex;align-items:center;gap:14px}.bag-emoji{font-size:44px}.bar{height:8px;border-radius:4px;background:var(--track);margin-top:8px;overflow:hidden}.bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#ff7eb6,#b07cff);transition:width .5s cubic-bezier(.2,.8,.2,1)}.check-row{display:flex;align-items:center;gap:14px;padding:12px 14px;position:relative;min-height:52px}.check-row+.check-row:before{left:54px}.check{width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;box-shadow:inset 0 0 0 2px var(--track);transition:all .25s cubic-bezier(.3,1.4,.5,1);color:#fff}.check-row.done .check{background:linear-gradient(135deg,#ff7eb6,#b07cff);box-shadow:none;transform:scale(1.05)}.check-row.done span{color:var(--muted);text-decoration:line-through;text-decoration-color:#ff4f9a80}.del{opacity:.35;padding:6px}.add-row{position:sticky;bottom:calc(var(--safe-b) + 92px);display:flex;gap:8px;align-items:center;padding:6px 6px 6px 18px;border-radius:999px;background:var(--glass-strong)}.add-row input{flex:1;border:0;outline:none;background:transparent;font-size:16px;min-width:0}.reward-hero{display:flex;align-items:center;gap:16px}.reward-hero>.grow>b{font-size:22px}.reward-hero p{margin-top:4px}.ring-big{font-size:24px;font-weight:800;margin-top:2px}.ring-num{font-size:11px;font-weight:800;color:var(--text)}.sticker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sticker{aspect-ratio:1;border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.sticker span{font-size:40px;filter:grayscale(1);opacity:.45;transition:all .4s}.sticker.on span{filter:none;opacity:1;animation:wiggle 3s ease-in-out infinite}@keyframes wiggle{0%,90%,to{transform:rotate(0)}93%{transform:rotate(-8deg) scale(1.08)}96%{transform:rotate(8deg) scale(1.08)}}.badge-ico{font-size:28px;width:40px;text-align:center}.badge-row.locked .badge-ico{filter:grayscale(1);opacity:.4}.teacher-form{display:flex;flex-direction:column;gap:8px;padding:12px}.teacher-form input{border:0;outline:none;padding:12px 14px;border-radius:14px;background:var(--track);font-size:16px}.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.report{margin:0;border-radius:20px;overflow:hidden;background:var(--glass-thin)}.report img,.report .ph{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--track)}.report figcaption{padding:8px 10px 10px;font-size:14px}.share-tag{margin-top:6px;font-size:12px;font-weight:650;padding:4px 8px;border-radius:999px;background:var(--track)}.share-tag.on{background:#2fbf7f29;color:var(--green)}.onboarding{min-height:100%;color:#fff;--c1: #ffb3d9;--c2: #b07cff}.ob-body{max-width:460px;margin:0 auto;padding:calc(var(--safe-t) + 48px) 24px 40px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}.ob-body h1{font-size:34px;font-weight:800;letter-spacing:-.02em}.ob-body p{font-size:17px;line-height:1.4;opacity:.95}.onboarding .glass{background:#fff3;box-shadow:inset 0 1px #fff9,inset 0 0 0 .5px #ffffff80,0 10px 30px #00000014;width:100%}.ob-form{display:flex;flex-direction:column;gap:10px;text-align:left}.ob-form label{font-weight:700;font-size:15px}.ob-form input{border:0;outline:none;padding:14px 16px;border-radius:16px;background:#ffffffe6;color:#3a1f3a;font-size:18px}.age-row{display:flex;gap:8px}.age-row button{flex:1;height:50px;border-radius:16px;background:#ffffff38;font-size:20px;font-weight:800;transition:all .25s}.age-row button.on{background:#fff;color:#c2307a;transform:scale(1.06)}.onboarding .btn{background:#fff;color:#c2307a}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:40px 20px;color:var(--muted)}.empty-emoji{font-size:56px;margin-bottom:6px}.empty b{color:var(--text);font-size:18px}.toast{position:fixed;z-index:70;top:calc(var(--safe-t) + 10px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:10px 18px 10px 10px;border-radius:999px;background:var(--glass-strong);animation:drop .5s cubic-bezier(.3,1.3,.5,1)}.toast-ico{font-size:28px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#ffb34033}.toast b{font-size:15px}.toast small{white-space:nowrap}@keyframes drop{0%{transform:translate(-50%,-120%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.swipe{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s ease,opacity .3s ease,margin .3s ease}.swipe.gone{grid-template-rows:0fr;opacity:0;margin-top:-8px}.swipe-inner{position:relative;min-height:0;overflow:hidden;border-radius:22px}.swipe-content{touch-action:pan-y;position:relative;z-index:1;will-change:transform}.swipe-content>*{width:100%}.swipe-del{position:absolute;top:0;bottom:0;right:0;z-index:0;overflow:hidden;border-radius:22px;background:#ff3b5c;color:#fff;display:flex;align-items:center;justify-content:flex-end;transition:background .2s}.swipe-del span{width:92px;flex:none;display:flex;flex-direction:column;align-items:center;gap:2px}.swipe-del small{color:#fff;font-size:12px;font-weight:700}.swipe-del.armed span{width:100%}.undo{position:fixed;z-index:30;left:50%;transform:translate(-50%);bottom:calc(var(--safe-b) + 90px);display:flex;align-items:center;gap:16px;padding:10px 10px 10px 18px;border-radius:999px;background:var(--glass-strong);font-weight:600;white-space:nowrap;animation:undoIn .4s cubic-bezier(.3,1.3,.5,1)}.undo button{color:var(--accent);font-weight:750;padding:8px 12px;border-radius:999px;background:#ff4f9a1f}@keyframes undoIn{0%{opacity:0;transform:translate(-50%,20px)}}.swipe-hint{text-align:center;font-size:12px;color:var(--muted)}.kind-grid{display:flex;flex-wrap:wrap;gap:8px}.kind{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:var(--glass-thin);box-shadow:inset 0 0 0 .5px var(--sep);font-size:14px;font-weight:600}.kind.on{background:color-mix(in srgb,var(--k) 18%,transparent);box-shadow:inset 0 0 0 2px var(--k)}.kind .x{margin-left:2px;opacity:.5;display:grid;place-items:center}.kind.add{color:var(--accent)}.custom-kind{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--r-md)}.custom-kind input{border:0;outline:none;padding:12px 14px;border-radius:14px;background:var(--track);font-size:16px}.pick-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px}.pick-row::-webkit-scrollbar{display:none}.pick-row button{flex:none;width:40px;height:40px;border-radius:12px;font-size:22px;display:grid;place-items:center;background:var(--glass-thin)}.pick-row button.on{box-shadow:inset 0 0 0 2px var(--pink);background:#ff4f9a1a}.pick-row .sw{width:32px;height:32px;border-radius:50%}.pick-row .sw.on{box-shadow:0 0 0 3px var(--bg),0 0 0 5px currentColor}.wd-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.wd-row button{height:42px;border-radius:14px;background:var(--glass-thin);font-weight:700;font-size:14px;box-shadow:inset 0 0 0 .5px var(--sep)}.wd-row button.on{background:linear-gradient(135deg,#ff7eb6,#b07cff);color:#fff;box-shadow:none}.sub-label{font-size:13px;font-weight:650;color:var(--muted);padding:0 4px;margin-bottom:-6px}.event-emoji{font-size:22px}
