*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--ink: #2a2140;--card: #ffffff;--accent: #6c4bd8;--good: #0a8a1f;--bad: #c00000;--radius: 20px;--shadow: 0 10px 26px rgba(60, 40, 120, .14)}html,body{margin:0;padding:0;font-family:Fredoka,Comic Sans MS,system-ui,Arial,sans-serif;color:var(--ink);background:linear-gradient(160deg,#fdf1ff,#eef4ff 45%,#fffbe8);min-height:100vh}button{font-family:inherit;color:inherit}.app-root{max-width:1020px;margin:0 auto;padding:12px 14px 90px;text-align:center}.app-title{margin:8px 0 4px;font-size:clamp(24px,5vw,36px);font-weight:700;letter-spacing:.5px}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:16px;text-align:left}.card-title{font-weight:700;font-size:19px;text-align:center;margin-bottom:12px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:4px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid #e8e2f7;padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:100}.tab-btn{flex:1;max-width:130px;border:none;background:transparent;border-radius:14px;padding:8px 4px;cursor:pointer;font-size:12px;font-weight:700;display:grid;justify-items:center;gap:2px;color:#7a7295;position:relative}.tab-btn .tab-icon{font-size:24px}.tab-btn.active{background:#efe9ff;color:var(--accent)}.tab-btn .badge{position:absolute;top:2px;right:12px;background:var(--bad);color:#fff;border-radius:999px;min-width:18px;height:18px;font-size:11px;line-height:18px;padding:0 4px}.kid-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.kid-btn{flex:1;min-width:150px;max-width:220px;border-radius:22px;padding:14px 10px;cursor:pointer;border:3px solid transparent;background:#faf8ff;transition:transform .12s ease,box-shadow .12s ease}.kid-btn:active{transform:scale(.95)}.kid-btn.active{border-color:var(--ink);background:#fff;box-shadow:var(--shadow);transform:translateY(-3px)}.kid-face{width:74px;height:74px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;font-size:42px;border:3px solid rgba(0,0,0,.08)}.kid-name{font-weight:700;font-size:17px;text-align:center}.pips{margin-top:8px;display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.pip{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:2px solid #d9d2ee;font-size:14px;background:#f4f1fc}.pip.filled{background:#fff3b0;border-color:#f0c930;animation:pop .3s ease}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.25)}to{transform:scale(1)}}.btn{padding:13px 18px;border-radius:16px;border:2px solid var(--ink);background:#fff;font-weight:700;font-size:16px;cursor:pointer;transition:transform .1s ease}.btn:active:not(:disabled){transform:scale(.95)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.good{background:#e9ffe9;border-color:var(--good);color:var(--good)}.btn.danger{background:#fff1f1;border-color:var(--bad);color:var(--bad)}.btn.ghost{border-color:#ddd;font-weight:600}.btn.small{padding:8px 12px;font-size:14px;border-radius:12px}.btn.big{font-size:19px;padding:16px 24px;border-radius:20px;min-width:220px}.btn-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:12px}.level-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.level-btn{padding:14px 20px;border-radius:18px;cursor:pointer;border:3px solid #e2dcf5;background:#fff;font-weight:700;font-size:18px;min-width:150px;transition:transform .12s ease}.level-btn:active{transform:scale(.95)}.level-btn.active{border-color:var(--ink);background:#f6f2ff;box-shadow:var(--shadow)}.level-btn:disabled{opacity:.45;cursor:not-allowed}.level-cost{font-size:13px;font-weight:600;opacity:.75;margin-top:2px}.option-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.option-tile{width:100%;text-align:left;border-radius:18px;padding:14px;display:flex;align-items:center;gap:12px;border:2px solid rgba(0,0,0,.1);cursor:default;font-size:15px}.option-tile.selectable{cursor:pointer;border:2px dashed var(--accent)}.option-tile.selectable:active{transform:scale(.97)}.option-tile.chosen{border:3px solid var(--good);box-shadow:var(--shadow)}.option-icon{width:48px;height:48px;border-radius:14px;flex-shrink:0;display:grid;place-items:center;font-size:24px;background:#ffffffa6;border:1px solid rgba(0,0,0,.08)}.option-name{font-weight:700}.option-label{font-size:14px;opacity:.85}.wheel-wrap{display:grid;justify-items:center;margin-top:10px}.wheel-canvas{border-radius:26px;background:#fff;box-shadow:var(--shadow);display:block;max-width:100%;height:auto;cursor:pointer}.result-banner{margin-top:14px;font-weight:700;font-size:20px;padding:14px;border-radius:16px;background:#f2ffe9;border:2px solid #b8e6a0;animation:pop .35s ease}.notice{margin-top:10px;font-weight:700;padding:10px 14px;border-radius:14px}.notice.warn{background:#fff7e6;border:1px solid #ffe2b7}.notice.info{background:#eef3ff;border:1px solid #cfdcff}.notice.error{background:#fff1f1;border:1px solid #ffc9c9;color:var(--bad)}.notice.good{background:#eaffea;border:1px solid #b8e6a0;color:var(--good)}.chore-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.chore-tile{border-radius:18px;padding:16px 14px;border:2px solid #eee6ff;background:#fdfbff;display:grid;justify-items:center;gap:6px;cursor:pointer;text-align:center;transition:transform .12s ease;font-size:15px}.chore-tile:active:not(.pending){transform:scale(.94)}.chore-tile .chore-emoji{font-size:38px}.chore-tile .chore-name{font-weight:700}.chore-tile .chore-smiles{font-size:13px;opacity:.8}.chore-tile.pending{border-color:#f0c930;background:#fffbe8;cursor:default}.claim-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #eee;border-radius:14px;padding:10px 12px;margin-top:8px;background:#fffdf4}.claim-text{flex:1;min-width:160px;font-weight:600}.bank-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.bank-card{border-radius:18px;padding:14px;border:2px solid #eee6ff}.bank-kid{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;margin-bottom:10px}.bank-line{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;margin-top:6px;background:#ffffffb3;font-weight:700}.bank-line .bank-val{margin-left:auto;font-size:18px}.filter-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:12px}.chip{border:2px solid #e2dcf5;background:#fff;padding:7px 14px;border-radius:999px;font-weight:700;font-size:14px;cursor:pointer}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.log-item{border:1px solid #eee;border-radius:16px;padding:12px;background:#fff;margin-bottom:10px}.log-head{font-weight:700}.log-detail{margin-top:4px;font-size:15px}.log-meta{font-size:12px;opacity:.7;margin-top:6px}.field{display:grid;gap:4px;margin-bottom:10px;text-align:left}.field label{font-weight:700;font-size:14px}.field input,.field select{padding:11px 12px;border-radius:12px;border:1px solid #d9d2ee;font-size:16px;font-family:inherit;width:100%}.admin-section{border:1px solid #eee2ff;border-radius:16px;margin-bottom:12px;overflow:hidden}.admin-section>summary{cursor:pointer;padding:14px 16px;font-weight:700;font-size:16px;background:#faf7ff;list-style:none;display:flex;align-items:center;gap:8px}.admin-section>summary::-webkit-details-marker{display:none}.admin-section[open]>summary{border-bottom:1px solid #eee2ff}.admin-body{padding:14px 16px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>input{flex:1;min-width:90px;padding:10px;border-radius:12px;border:1px solid #d9d2ee;font-size:15px;font-family:inherit}.row>input.tiny{flex:0 0 76px;min-width:60px}.table-like{display:grid;gap:8px}.muted{opacity:.7;font-size:14px}.center{text-align:center}.parent-bar{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin-bottom:14px}.login-wrap{max-width:420px;margin:8vh auto 0}.login-logo{font-size:66px}@media(max-width:520px){.option-grid{grid-template-columns:1fr 1fr}.kid-btn{min-width:100px}.kid-face{width:60px;height:60px;font-size:34px}}.cache-bust-v2{--v: 2}
