:root{--bg-top: #f7f9ff;--bg-bot: #fff6e5;--color-star: #ffc93c;--color-star-deep: #f59e0b;--color-action: #ff8a5b;--color-action-deep: #e76e3c;--color-success: #4ecdc4;--color-parent: #a78bfa;--color-parent-deep: #8a6ed8;--color-pink: #ff8fa3;--color-text: #2d3561;--color-text-soft: #8a90b8;--color-card: #ffffff;--color-bg: #fbfcff;--color-line: #ecedf6;--color-red: #ff6b6b;--color-red-soft: #fff0ed;--color-green: #14b8a6;--color-orange: #ff9f43;--color-blue: #3b82f6;--r-sm: 16px;--r-md: 24px;--r-lg: 32px;--shadow-sm: 0 4px 12px rgba(45, 53, 97, .06);--shadow-md: 0 8px 24px rgba(45, 53, 97, .1);--shadow-lg: 0 16px 48px rgba(45, 53, 97, .14);--shadow-press: 0 2px 6px rgba(45, 53, 97, .1);--trot-1: #fff3d6;--trot-2: #ffe4ec;--trot-3: #e0f7f4;--trot-4: #ece4ff;--trot-5: #ffe7d6;--trot-6: #dceaff;--font-cn: "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans CN", "Microsoft YaHei", system-ui, sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;font-family:var(--font-cn);font-size:16px;line-height:1.45;color:var(--color-text);background:radial-gradient(circle at 20% 10%,#fff 0%,transparent 35%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg-bot) 60%);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}button{font-family:inherit;color:inherit;border:0;background:transparent;cursor:pointer;padding:0}input,select,textarea{font-family:inherit;color:inherit}a{color:inherit}.bg-stage{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.bg-cloud,.bg-star-bg{position:absolute;opacity:.55;filter:blur(.3px)}.bg-cloud{width:220px;height:80px;background:radial-gradient(ellipse at center,#ffffffd9,#fff0 70%);border-radius:50%;animation:drift 50s linear infinite,breathe 6s ease-in-out infinite}.bg-cloud.c2{width:280px;height:100px;animation-duration:70s,8s}.bg-cloud.c3{width:160px;height:60px;animation-duration:90s,7s}.bg-star-bg{width:12px;height:12px;background:var(--color-star);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);animation:twinkle 3s ease-in-out infinite}@keyframes drift{0%{transform:translate(-30vw)}to{transform:translate(130vw)}}@keyframes breathe{0%,to{opacity:.45}50%{opacity:.7}}@keyframes twinkle{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:.85;transform:scale(1.1)}}.page{position:relative;z-index:1;min-height:100%;padding:16px 16px calc(96px + var(--safe-bottom)) 16px;max-width:720px;margin:0 auto}.page-title{font-weight:800;letter-spacing:.04em;font-size:26px;margin:8px 0 14px;color:var(--color-text)}.section-title{font-weight:800;font-size:18px;letter-spacing:.04em;margin:20px 0 12px;color:var(--color-text);display:flex;align-items:center;gap:8px}.section-title .badge{background:var(--color-parent);color:#fff;font-size:12px;padding:2px 8px;border-radius:999px;font-weight:700}.muted{color:var(--color-text-soft)}.mono{font-variant-numeric:tabular-nums}.card{background:var(--color-card);border-radius:var(--r-md);padding:16px;box-shadow:var(--shadow-sm)}.kbd-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.kbd{background:var(--color-card);border-radius:var(--r-md);padding:14px 12px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left}.kbd-label{color:var(--color-text-soft);font-size:12px}.kbd-value{font-size:22px;font-weight:800;letter-spacing:.02em;color:var(--color-text)}.hero{position:relative;margin:8px -4px 18px;padding:18px 18px 22px;border-radius:32px;background:radial-gradient(circle at 90% -10%,rgba(255,201,60,.35),transparent 55%),radial-gradient(circle at -10% 110%,rgba(167,139,250,.18),transparent 60%),linear-gradient(180deg,#fff,#fffaf0);box-shadow:var(--shadow-md);overflow:hidden}.hero-top{display:flex;align-items:center;justify-content:space-between}.child-chip{display:inline-flex;align-items:center;gap:8px;background:var(--trot-4);padding:6px 12px 6px 6px;border-radius:999px;font-weight:800;color:var(--color-text)}.child-chip .avatar{font-size:22px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:999px;box-shadow:var(--shadow-sm)}.today-earned{font-weight:800;font-size:14px;color:var(--color-action-deep);background:var(--trot-5);padding:6px 12px;border-radius:999px}.balance-wrap{margin:18px 0 8px;text-align:center}.balance-num{font-size:104px;line-height:1;font-weight:800;letter-spacing:-.02em;background:linear-gradient(180deg,#ffb800,#ff8a5b 80%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 0 #fff) drop-shadow(0 4px 12px rgba(255,138,91,.35));font-variant-numeric:tabular-nums;display:inline-block}.balance-num.shake{animation:shake .5s ease-in-out}.balance-label{color:var(--color-text-soft);font-weight:700;letter-spacing:.05em;margin-top:4px}.negative-tip{color:var(--color-text-soft);font-size:12px;margin-top:4px}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.balance-num.bump{animation:bump .55s cubic-bezier(.34,1.56,.64,1)}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.rocket-bar{margin-top:14px;background:var(--trot-1);border-radius:16px;padding:10px 14px;display:flex;align-items:center;gap:10px}.rocket-bar .label{font-size:12px;font-weight:800;color:var(--color-action-deep);flex-shrink:0}.rocket-bar .track{flex:1;height:12px;background:#fff9;border-radius:999px;position:relative;overflow:hidden}.rocket-bar .fill{position:absolute;inset:0 auto 0 0;width:0%;background:linear-gradient(90deg,#ffc93c,#ff8a5b);border-radius:999px;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.rocket-bar .rocket{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:22px;transition:left .6s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.rocket-bar .stat{font-size:12px;font-weight:800;color:var(--color-text);flex-shrink:0;font-variant-numeric:tabular-nums}.task-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.task-card{position:relative;background:var(--color-card);border-radius:var(--r-md);padding:14px 10px 12px;text-align:center;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;align-items:center;gap:6px;min-height:124px;transition:transform .12s ease,box-shadow .12s ease;touch-action:manipulation}.task-card:active{transform:scale(.96);box-shadow:var(--shadow-press)}.task-card .trot{width:64px;height:64px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:32px;margin-bottom:2px}.task-card .name{font-size:16px;font-weight:800;color:var(--color-text);line-height:1.2}.task-card .star{font-size:13px;font-weight:700;color:var(--color-action-deep);background:var(--trot-1);padding:2px 8px;border-radius:999px}.task-card .check{position:absolute;top:6px;right:6px;background:var(--color-success);color:#fff;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px}.task-card.done{background:#f5f7fb;color:var(--color-text-soft)}.task-card.done .name{color:var(--color-text-soft)}.task-card.locked{opacity:.5}.task-card.disabled{display:none}.tier-anchor{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}.tier-anchor::-webkit-scrollbar{display:none}.tier-chip{flex-shrink:0;background:var(--color-card);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:800;color:var(--color-text);box-shadow:var(--shadow-sm);white-space:nowrap}.tier-chip.star{color:var(--color-star-deep)}.tier-section{margin-top:22px}.tier-section h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:16px;font-weight:800}.tier-section .tier-tag{background:var(--color-star);color:#fff;font-size:12px;padding:2px 8px;border-radius:999px}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.reward-card{background:var(--color-card);border-radius:var(--r-md);padding:12px 8px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:var(--shadow-sm);position:relative;min-height:116px;transition:transform .12s ease}.reward-card:active{transform:scale(.96)}.reward-card.unavailable{opacity:.45;filter:grayscale(.4)}.reward-card .trot{width:56px;height:56px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:2px}.reward-card .name{font-size:14px;font-weight:800;line-height:1.2}.reward-card .cost{background:var(--trot-1);color:var(--color-action-deep);font-weight:800;font-size:13px;padding:2px 8px;border-radius:999px}.reward-card .tip{font-size:11px;color:var(--color-text-soft);font-weight:700}.log-row{display:grid;grid-template-columns:48px 1fr auto auto;align-items:center;gap:10px;padding:12px 8px;border-bottom:1px solid var(--color-line)}.log-row:last-child{border-bottom:0}.log-row .trot{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:20px}.log-row .body{display:flex;flex-direction:column;gap:2px;min-width:0}.log-row .ref{font-weight:800;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-row .meta{font-size:12px;color:var(--color-text-soft)}.log-row .delta{font-weight:800;font-size:16px;font-variant-numeric:tabular-nums;text-align:right}.log-row .delta.pos{color:var(--color-green)}.log-row .delta.neg{color:var(--color-red)}.log-row .after{font-size:12px;color:var(--color-text-soft)}.log-row.voided{opacity:.4;text-decoration:line-through}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--color-line);display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:var(--safe-bottom);z-index:50;box-shadow:0 -4px 16px #2d35610f}.nav-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;color:var(--color-text-soft);font-size:12px;font-weight:700;min-height:56px}.nav-btn.active{color:var(--color-action-deep)}.nav-btn svg{width:26px;height:26px}.nav-btn.parent-holding .hold-ring{position:absolute;width:44px;height:44px;top:4px;left:50%;transform:translate(-50%);pointer-events:none}.hold-ring circle{fill:none;stroke:var(--color-parent-deep);stroke-width:4;stroke-dasharray:132;stroke-dashoffset:132;transition:stroke-dashoffset .05s linear;transform:rotate(-90deg);transform-origin:center}.scrim{position:fixed;inset:0;height:100vh;height:100dvh;background:#2d356180;z-index:100;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out;overscroll-behavior:contain;padding:20px}.sheet{background:var(--color-card);width:100%;max-width:540px;border-radius:var(--r-lg);padding:18px 18px 20px;box-shadow:var(--shadow-lg);animation:pop .25s cubic-bezier(.34,1.56,.64,1);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto;-webkit-overflow-scrolling:touch}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sheet-title{font-size:18px;font-weight:800;letter-spacing:.04em}.sheet .close{width:36px;height:36px;border-radius:50%;background:var(--color-line);display:inline-flex;align-items:center;justify-content:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog{background:var(--color-card);width:min(90vw,360px);border-radius:var(--r-lg);padding:22px 22px 18px;box-shadow:var(--shadow-lg);text-align:center;animation:pop .25s cubic-bezier(.34,1.56,.64,1);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto;-webkit-overflow-scrolling:touch}.dialog .trot{width:88px;height:88px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:44px;margin-bottom:8px}.dialog h3{margin:6px 0 8px;font-size:18px;font-weight:800}.dialog p{margin:4px 0;color:var(--color-text-soft)}.dialog .dialog-actions{display:flex;gap:10px;margin-top:18px}@keyframes pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 18px;border-radius:var(--r-sm);font-weight:800;font-size:16px;letter-spacing:.02em;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;min-height:50px;min-width:50px}.btn:active{transform:scale(.96)}.btn.primary{background:var(--color-action);color:#fff;box-shadow:0 8px 16px #ff8a5b4d}.btn.primary:hover{background:var(--color-action-deep)}.btn.success{background:var(--color-success);color:#fff}.btn.danger{background:var(--color-red);color:#fff}.btn.ghost{background:var(--color-line);color:var(--color-text)}.btn.outline{background:#fff;color:var(--color-text);border:1.5px solid var(--color-line)}.btn.parent{background:var(--color-parent);color:#fff;box-shadow:0 8px 16px #a78bfa4d}.btn.full{width:100%}.btn-row{display:flex;gap:10px}.btn-row>.btn{flex:1}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;font-weight:700;color:var(--color-text-soft)}.field input[type=text],.field input[type=number],.field input[type=password],.field textarea,.field select{border:1.5px solid var(--color-line);background:#fff;border-radius:var(--r-sm);padding:12px 14px;font-size:16px;outline:none;transition:border-color .15s ease}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--color-action)}.field .hint{font-size:12px;color:var(--color-text-soft)}.emoji-panel{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-height:180px;overflow-y:auto;padding:8px;background:#f8f9fc;border-radius:var(--r-sm)}.emoji-panel button{font-size:22px;padding:6px 0;border-radius:8px}.emoji-panel button.active{background:var(--trot-5)}.toggle{display:flex;align-items:center;gap:8px;padding:8px 0;font-weight:700}.login{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 24px;text-align:center}.login .title{font-size:36px;font-weight:800;letter-spacing:.04em;margin:12px 0 4px;background:linear-gradient(180deg,#ffb800,#ff8a5b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.login .subtitle{color:var(--color-text-soft);margin-bottom:22px}.login .big-icon{font-size:88px;line-height:1;filter:drop-shadow(0 6px 18px rgba(255,138,91,.4));margin-bottom:4px}.login .login-card{background:var(--color-card);border-radius:var(--r-md);padding:22px;box-shadow:var(--shadow-md);width:min(420px,100%);display:flex;flex-direction:column;gap:12px}.login .pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}.login .pin-grid button{background:var(--color-card);border-radius:var(--r-sm);font-size:26px;font-weight:800;padding:18px 0;box-shadow:var(--shadow-sm)}.login .pin-grid button:active{background:var(--trot-1);transform:scale(.96)}.login .pin-display{font-size:36px;font-weight:800;letter-spacing:.4em;height:48px;color:var(--color-action);font-variant-numeric:tabular-nums}.toast-host{position:fixed;top:18px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:200;pointer-events:none}.toast{background:var(--color-card);border-radius:999px;padding:10px 18px;box-shadow:var(--shadow-lg);font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px;animation:toastIn .3s ease-out;pointer-events:auto;max-width:90vw}.toast.success{color:var(--color-green)}.toast.error{color:var(--color-red)}.toast .retry{text-decoration:underline;cursor:pointer}@keyframes toastIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.fly-stage{position:fixed;inset:0;pointer-events:none;z-index:150}.fly-star{position:absolute;width:28px;height:28px;font-size:28px;will-change:transform,opacity}.confetti-piece{position:fixed;width:8px;height:14px;top:-20px;pointer-events:none;z-index:160}@keyframes shakeX{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.login-card.shake{animation:shakeX .45s ease-out}.parent-gate{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;padding:20px;text-align:center}.parent-gate h2{margin:12px 0 8px;font-size:24px;font-weight:800}.parent-gate p{color:var(--color-text-soft);margin:4px 0 20px}.parent-hub{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.parent-tile{background:var(--color-card);border-radius:var(--r-md);padding:22px 16px;box-shadow:var(--shadow-sm);text-align:left;display:flex;flex-direction:column;gap:4px;min-height:110px;transition:transform .12s ease,box-shadow .12s ease}.parent-tile:active{transform:scale(.97);box-shadow:var(--shadow-press)}.parent-tile .icon{font-size:32px;width:56px;height:56px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:8px;background:var(--trot-4)}.parent-tile .label{font-weight:800;font-size:16px}.parent-tile .desc{font-size:12px;color:var(--color-text-soft)}.list-row{display:flex;align-items:center;gap:12px;padding:12px;background:var(--color-card);border-radius:var(--r-md);box-shadow:var(--shadow-sm);margin-bottom:8px}.list-row .trot{width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.list-row .body{flex:1;min-width:0}.list-row .body .top{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px}.list-row .body .meta{font-size:12px;color:var(--color-text-soft)}.list-row .actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.list-row .actions button{width:36px;height:36px;border-radius:12px;background:var(--color-line);display:inline-flex;align-items:center;justify-content:center}.list-row .actions button.danger{background:var(--color-red-soft);color:var(--color-red)}.ios-switch{position:relative;display:inline-block;width:51px;height:31px;background:#e9e9ea;border-radius:999px;transition:background .2s ease;flex:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}.ios-switch.on{background:#34c759}.ios-switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #0003,0 0 1px #00000026;transition:transform .2s cubic-bezier(.4,0,.2,1)}.ios-switch.on:after{transform:translate(20px)}.ios-switch.sm{width:38px;height:22px}.ios-switch.sm:after{width:18px;height:18px;top:2px;left:2px}.ios-switch.sm.on:after{transform:translate(16px)}@media (max-width: 360px){.balance-num{font-size:88px}.task-grid,.reward-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 600px){.balance-num{font-size:120px}.task-grid,.reward-grid{grid-template-columns:repeat(4,1fr)}}input[type=text],input[type=number],input[type=password],select,textarea{font-size:16px}.no-select{-webkit-user-select:none;user-select:none}
