:root{--bg: #fdf8f0;--panel: #ffffff;--text: #1f2433;--muted: #555b6e;--accent: #5b3fd1;--accent-soft: #ece7ff;--border: #e4dccd;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0}.app{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:1rem .75rem}.brand{font-weight:700;font-size:1.15rem;padding:.25rem .75rem 1rem;color:var(--accent)}.sidebar ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.nav-button{display:flex;align-items:center;gap:.75rem;width:100%;min-height:44px;padding:.5rem .75rem;border:none;border-radius:var(--radius);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.nav-button:hover{background:var(--accent-soft)}.nav-button[aria-current=page]{background:var(--accent);color:#fff;font-weight:600}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.nav-icon{width:24px;height:24px}.phone-only{display:none}.column{flex:1;min-width:0;display:flex;flex-direction:column}.content{flex:1;padding:1.5rem 2rem 6rem;min-width:0;max-width:52rem}.stats-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.75rem;padding:.6rem 2rem;background:var(--panel);border-bottom:1px solid var(--border)}.level-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--accent);color:#fff;line-height:1}.level-word{font-size:.6rem;text-transform:uppercase;letter-spacing:.05em}.level-number{font-size:1.15rem;font-weight:700}.xp{flex:1;min-width:0}.xp-track{height:12px;border-radius:999px;background:var(--accent-soft);overflow:hidden}.xp-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#7b61ff,var(--accent));transition:width .4s ease}.xp-text{font-size:.75rem;color:var(--muted);margin-top:.15rem}.wallet{display:flex;gap:.6rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.screen-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.screen-top .screen-description{margin:0}.task-section{margin-top:1.5rem}.task-section h2,.collapsible summary{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .5rem}.task-list{list-style:none;margin:0;padding:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.task-list>li+li{border-top:1px solid var(--border)}.task-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .5rem .5rem .75rem;min-height:56px}.task-row.finished .task-title{color:var(--muted)}.grow{flex:1;min-width:0}.task-title{font-size:1.05rem}.task-meta{display:block;font-size:.8rem;color:var(--muted)}.tick{flex-shrink:0;width:44px;height:44px;border-radius:12px;border:2px solid var(--accent);background:var(--panel);color:var(--accent);font:inherit;font-weight:700;font-size:.9rem;cursor:pointer}.tick.plus{font-size:1.5rem;line-height:1}.tick.ticked{background:#2e9e5b;border-color:#2e9e5b;color:#fff;font-size:1.3rem}.tick:active,.choice:active{transform:scale(.94)}.edit-button{flex-shrink:0;width:44px;height:44px;border:none;background:none;color:var(--muted);font-size:1.15rem;border-radius:var(--radius);cursor:pointer}.edit-button:hover{background:var(--accent-soft)}.choice-row{padding:.5rem .5rem .75rem .75rem}.choice-head{display:flex;align-items:center;justify-content:space-between}.choice-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding-right:.25rem}.choice{display:flex;flex-direction:column;align-items:center;gap:.1rem;min-height:72px;padding:.5rem;border-radius:var(--radius);border:2px solid var(--border);background:var(--bg);color:var(--text);font:inherit;cursor:pointer}.choice.better{border-color:var(--accent);background:var(--accent-soft)}.choice-icon{display:flex;justify-content:center}.choice-label{font-weight:600;text-align:center}.choice-reward{font-size:.8rem;color:var(--muted)}.collapsible{margin-top:1.5rem}.collapsible summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.hint{font-size:.85rem;color:var(--muted);margin:.4rem 0 0}.hint.spaced{margin-bottom:.9rem}.muted{color:var(--muted);font-weight:400}.button.small{min-height:36px;padding:.25rem .75rem;font-size:.9rem}.button.quiet{border-color:transparent;color:var(--muted)}.pixel-art{display:block;image-rendering:pixelated}.character-stage{display:flex;justify-content:center;align-items:flex-end;margin:.5rem 0 0;padding:1.25rem 1rem 1rem;border-radius:20px;background:radial-gradient(ellipse 45% 10% at 50% 92%,rgba(43,34,51,.18),transparent 70%),linear-gradient(180deg,#ece7ff,#fdf1e3);border:1px solid var(--border)}.character-description{text-align:center;margin-bottom:.5rem}.tabs{display:flex;gap:.35rem;overflow-x:auto;margin:1rem -1rem 0;padding:0 1rem .25rem;scrollbar-width:none}.tab{flex-shrink:0;min-height:40px;padding:.35rem 1rem;border:2px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.tab.selected{border-color:var(--accent);background:var(--accent);color:#fff}.picker{border:none;padding:0;margin:1rem 0 0}.picker legend{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;margin-bottom:.4rem}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.5rem}.tile{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .25rem;border:2px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);font:inherit;cursor:pointer}.tile.selected{border-color:var(--accent);background:var(--accent-soft)}.tile-art{display:flex;justify-content:center;height:64px}.tile-label{font-size:.8rem;font-weight:600;line-height:1.2;text-align:center}.swatches{display:flex;flex-wrap:wrap;gap:.5rem}.swatch{width:40px;height:40px;border-radius:50%;border:2px solid rgba(0,0,0,.15);cursor:pointer}.swatch.selected{outline:3px solid var(--accent);outline-offset:3px}.shop-grid{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.shop-card{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:100%;height:100%;padding:.75rem .5rem;border:2px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);font:inherit;cursor:pointer}.shop-card.owned{border-color:#2e9e5b}.shop-art{display:flex;justify-content:center;align-items:flex-end;width:100%;height:96px;border-radius:10px;background:linear-gradient(180deg,#ece7ff,#fdf1e3);padding-bottom:4px}.shop-name{font-weight:700;text-align:center;line-height:1.25;margin-top:.3rem}.price{font-weight:700;font-variant-numeric:tabular-nums}.shop-missing{font-size:.75rem;color:var(--muted)}.owned-badge,.wearing-badge{font-size:.85rem;font-weight:700;color:#1d6b3a}.wearing-badge{align-self:center}.item-stage{display:flex;justify-content:center;padding:1rem;border-radius:16px;background:linear-gradient(180deg,#ece7ff,#fdf1e3);margin-bottom:.75rem}.item-sheet h2{margin-bottom:.25rem}.item-price{font-size:1.2rem;margin:.5rem 0 0}.button:disabled,.button.primary:disabled{border-color:var(--border);background:var(--bg);color:var(--muted);cursor:not-allowed}.icon{display:inline-block;vertical-align:middle;image-rendering:pixelated;flex-shrink:0}.amount{display:inline-flex;align-items:center;gap:.2em;white-space:nowrap}.price{display:inline-flex;align-items:center;gap:.3em}.pet-sprite{display:inline-flex;align-items:flex-end;justify-content:center}.treat-emoji{line-height:1;align-self:center}.item-preview-wrap{position:relative;display:inline-flex;align-items:flex-end}.egg-badge{position:absolute;right:-1.1rem;bottom:0;font-size:1.1rem}.pet-corner{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:.75rem .6rem;min-height:150px;margin-top:.5rem;padding:3.5rem .5rem .9rem;border-radius:20px;border:1px solid var(--border);background:linear-gradient(180deg,transparent 72%,#d9c6a5 72%,#cbb48d 100%),linear-gradient(180deg,#f3ecff,#fbeee0)}.corner-item{position:relative;display:flex;align-items:flex-end}.corner-pet{position:absolute}.corner-hint{max-width:14rem;text-align:center;margin-bottom:1.5rem}.pet-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.pet-card{display:flex;align-items:center;gap:.9rem;width:100%;padding:.6rem .9rem;border:2px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);font:inherit;text-align:left;cursor:pointer}.pet-card.companion{border-color:var(--accent)}.pet-card-art{display:flex;justify-content:center;width:72px;flex-shrink:0;border-radius:10px;background:linear-gradient(180deg,#ece7ff,#fdf1e3);padding:4px 0}.pet-card-text{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.pet-card-name{font-weight:700;font-size:1.05rem}.companion-badge{font-size:.75rem;color:var(--accent);margin-left:.25rem}.mini-track{display:block;height:8px;margin-top:.25rem;border-radius:999px;background:var(--accent-soft);overflow:hidden}.mini-track>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffb347,#f27db5)}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem}.chip{min-height:40px;padding:.3rem .85rem;border:2px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.growth{margin-top:.5rem}.companion-card{display:flex;align-items:center;gap:1rem;margin-top:1rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:18px;background:linear-gradient(180deg,#ece7ff,#fdf1e3)}.companion-art{display:flex;align-items:flex-end;gap:.25rem;flex-shrink:0}.companion-text{flex:1;min-width:0}.companion-text p{margin:0 0 .3rem}.toast{position:fixed;left:50%;bottom:1.5rem;z-index:20;display:flex;align-items:center;gap:.75rem;max-width:calc(100vw - 2rem);padding:.6rem .6rem .6rem 1rem;border-radius:999px;background:var(--text);color:#fff;font-weight:600;white-space:nowrap;transform:translate(-50%,150%);opacity:0;transition:transform .25s ease,opacity .25s ease;pointer-events:none}.toast.show{transform:translate(-50%);opacity:1;pointer-events:auto}.toast.celebrate{background:linear-gradient(90deg,#5b3fd1,#c2399b)}.toast-undo{min-height:36px;padding:.25rem .9rem;border:none;border-radius:999px;background:#fff3;color:#fff;font:inherit;cursor:pointer}.sheet{width:min(32rem,calc(100vw - 1.5rem));max-height:calc(100dvh - 2rem);padding:1.25rem;border:none;border-radius:18px;background:var(--panel);color:var(--text);box-shadow:0 20px 60px #00000040}.sheet::backdrop{background:#1f243373}.sheet h2{margin:0 0 .75rem}.sheet fieldset{border:none;margin:0 0 .9rem;padding:0}.sheet legend,.field>span{display:block;font-size:.85rem;font-weight:600;color:var(--muted);margin-bottom:.3rem}.field{display:block;margin-bottom:.9rem}.field input{width:100%;box-sizing:border-box;min-height:44px;padding:.4rem .7rem;border:2px solid var(--border);border-radius:10px;font:inherit;font-size:16px;background:var(--bg);color:var(--text)}.field input:focus{border-color:var(--accent);outline:none}.field-row{display:flex;gap:.6rem}.field-row .field{margin-bottom:0}.icon-field{width:4.5rem;flex-shrink:0}.icon-field input{text-align:center;font-size:1.3rem}.segmented{display:flex;flex-wrap:wrap;gap:.35rem}.segmented label{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:.25rem;min-height:44px;padding:.25rem .6rem;border:2px solid var(--border);border-radius:10px;cursor:pointer;font-weight:600;text-align:center}.segmented label.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.segmented label:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.segmented input{position:absolute;opacity:0;pointer-events:none}.days{display:flex;gap:.3rem}.day{flex:1;min-height:44px;border:2px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;font-weight:700;cursor:pointer}.day.on{border-color:var(--accent);background:var(--accent);color:#fff}.option-box{padding:.75rem!important;border:1px solid var(--border)!important;border-radius:var(--radius)}.option-box .field-row{margin-bottom:.6rem}.screen h1{margin:0 0 .5rem}.screen-description{color:var(--muted);max-width:40rem}.coming-soon{display:inline-block;margin-top:1rem;padding:.5rem 1rem;border-radius:var(--radius);background:var(--accent-soft)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-top:1rem;max-width:40rem}.card h2{margin:0 0 .25rem;font-size:1.2rem}.note{font-size:.95rem}.button-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.button{min-height:44px;padding:.5rem 1.1rem;border:2px solid var(--accent);border-radius:var(--radius);background:var(--panel);color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.button.primary{background:var(--accent);color:#fff}.confirm{margin-top:1rem;padding:.75rem 1rem;border-radius:var(--radius);background:#fff6e0;border:1px solid #f0d58a}.confirm p{margin:0}.status{min-height:1.5em;margin:.75rem 0 0}.status.success{color:#1d6b3a}.status.error{color:#a3222c}.more-list{list-style:none;margin:1rem 0 0;padding:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.more-list li+li{border-top:1px solid var(--border)}.more-item{display:flex;align-items:center;gap:.75rem;width:100%;min-height:52px;padding:.5rem 1rem;border:none;background:none;color:var(--text);font:inherit;font-size:1.05rem;text-align:left;cursor:pointer}.more-arrow{margin-left:auto;color:var(--muted);font-size:1.5rem}@media(max-width:700px){.app{flex-direction:column}.content{padding:1rem;padding-bottom:calc(140px + env(safe-area-inset-bottom))}.stats-bar{padding:calc(.5rem + env(safe-area-inset-top)) 1rem .5rem}.toast{bottom:calc(80px + env(safe-area-inset-bottom))}.screen-top h1{font-size:1.6rem}.sidebar{position:fixed;left:0;right:0;bottom:0;z-index:10;width:auto;border-right:none;border-top:1px solid var(--border);padding:.25rem .25rem calc(.25rem + env(safe-area-inset-bottom))}.brand,.desktop-only{display:none}.phone-only{display:block}.sidebar ul{flex-direction:row;justify-content:space-around}.sidebar li{flex:1}.nav-button{flex-direction:column;justify-content:center;gap:.1rem;padding:.35rem .25rem;font-size:.7rem;text-align:center}}@media(min-width:701px){.more-list{max-width:24rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.task-icon{margin-right:.4rem;vertical-align:-5px}.choice-icon .task-icon{margin:0}.icon-picker{display:contents}.icon-picker-head{display:flex;flex-direction:column;flex-shrink:0}.picker-label{display:block;font-size:.85rem;font-weight:600;color:var(--muted);margin-bottom:.3rem}.icon-picker-button{display:grid;place-items:center;width:56px;height:48px;border:2px solid var(--border);border-radius:10px;background:var(--bg);cursor:pointer}.icon-picker-button[aria-expanded=true]{border-color:var(--accent)}.field-row{flex-wrap:wrap}.icon-grid-panel{order:10;flex-basis:100%;display:grid;gap:.6rem;margin-top:.6rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.icon-group{border:none;margin:0;padding:0}.icon-group legend{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;margin-bottom:.3rem}.icon-grid{display:flex;flex-wrap:wrap;gap:.35rem}.icon-choice{display:grid;place-items:center;width:44px;height:44px;border:2px solid transparent;border-radius:10px;background:var(--bg);cursor:pointer}.icon-choice.selected{border-color:var(--accent);background:var(--accent-soft)}.sheet form>.field-row{margin-bottom:.9rem}.chip-with-icon{display:inline-flex;align-items:center;gap:.35rem}.button,.owned-badge,.wearing-badge,.companion-badge{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.tick .icon,.edit-button .icon{display:block;margin:auto}
