:root{--bg: #0f1115;--card: #1a1d24;--accent: #4caf8e;--text: #e8eaed;--muted: #8a8f98;font-family:system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.center{display:grid;place-items:center;height:100vh;color:var(--muted)}.app{display:flex;flex-direction:column;min-height:100vh;max-width:560px;margin:0 auto}.content{flex:1;padding-bottom:64px}.screen{padding:16px;display:flex;flex-direction:column;gap:16px}.space-switcher{display:flex;gap:8px;padding:12px 16px;align-items:center;border-bottom:1px solid #23262e}.space-switcher select,.space-switcher input{background:var(--card);color:var(--text);border:1px solid #2a2e37;border-radius:8px;padding:8px}.space-create{display:flex;gap:4px}.space-switcher select{flex:1}.space-switcher button{padding:8px 10px;font-size:13px;white-space:nowrap}.balance{position:relative;font-size:48px;font-weight:700;text-align:center;padding:8px 0}.balance-unit{display:block;font-size:14px;color:var(--muted);font-weight:400}.flash{position:absolute;right:30%;top:0;color:var(--accent);font-size:24px;animation:floatup .9s ease-out forwards}@keyframes floatup{to{transform:translateY(-30px);opacity:0}}.house{position:relative;background:linear-gradient(180deg,#1b2230 0%,var(--card) 70%);border-radius:16px;padding:20px 24px 18px;text-align:center;overflow:hidden}.house-level{font-size:12px;color:var(--accent);font-weight:600;margin-bottom:4px}.room3d{height:260px;border-radius:12px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#20283a,#141821);touch-action:none}.room3d canvas{display:block;cursor:grab}.room3d canvas:active{cursor:grabbing}.house-scene{font-size:56px;line-height:1.1;transition:transform .3s}.house-celebrate .house-scene{animation:house-pop .6s ease-out}@keyframes house-pop{0%{transform:scale(1)}40%{transform:scale(1.25) rotate(-4deg)}to{transform:scale(1)}}.house-row{display:flex;justify-content:center;flex-wrap:wrap;gap:2px;font-size:22px;margin-top:4px}.house-decor{font-size:18px;opacity:.95}.house-caption{color:var(--muted);font-size:13px;margin-top:8px}.house-toast{position:absolute;left:0;right:0;bottom:8px;margin:0 auto;font-size:12px;color:#04130d;background:var(--accent);border-radius:8px;padding:4px 10px;width:fit-content;animation:house-toast 2.2s ease-out forwards}@keyframes house-toast{0%{opacity:0;transform:translateY(8px)}15%{opacity:1;transform:translateY(0)}85%{opacity:1}to{opacity:0}}.section-head{display:flex;justify-content:space-between;align-items:center}.section-head a{color:var(--accent);text-decoration:none;font-size:14px}h2{font-size:18px;margin:0}h3{font-size:15px;margin:8px 0 0}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action-tile{position:relative;background:var(--card);border:none;border-radius:12px;padding:14px;color:var(--text);text-align:left;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:background .2s,transform .08s}.action-tile:active{transform:scale(.96)}.action-tile-logged{background:var(--accent);color:#04130d}.action-tile-logged .muted,.action-tile-logged .action-more{color:#04130d}.action-check{position:absolute;right:10px;bottom:8px;font-size:12px;font-weight:700;color:#04130d;animation:check-pop .3s ease-out}@keyframes check-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.action-title{font-weight:600}.action-more{position:absolute;right:10px;top:8px;color:var(--muted)}.list-row{display:flex;justify-content:space-between;background:var(--card);border:none;border-radius:10px;padding:12px 14px;color:var(--text);width:100%;text-align:left;cursor:pointer}.goal-row{display:block;background:var(--card);border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--text);margin-bottom:8px}.goal-row-head{display:flex;justify-content:space-between;margin-bottom:8px}.badge{background:var(--accent);color:#04130d;border-radius:6px;padding:2px 8px;font-size:12px}.badge-muted{background:#2a2e37;color:var(--muted)}.progress{position:relative;background:#2a2e37;border-radius:8px;height:22px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .4s}.progress-label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:12px}.chip{background:var(--card);border:1px solid #2a2e37;border-radius:20px;padding:6px 12px;color:var(--text);cursor:pointer;font-size:13px}.chip-active{background:var(--accent);color:#04130d;border-color:var(--accent)}.difficulty-picker,.tag-chips{display:flex;flex-wrap:wrap;gap:8px}.form label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.form input{background:var(--card);border:1px solid #2a2e37;border-radius:8px;padding:10px;color:var(--text)}button{background:var(--accent);color:#04130d;border:none;border-radius:10px;padding:12px;font-weight:600;cursor:pointer}button.danger{background:#5a2330;color:#ffb4b4}button.link{background:none;color:var(--accent);padding:0;text-align:left}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;z-index:10}.sheet{background:var(--card);width:100%;max-width:560px;margin:0 auto;border-radius:16px 16px 0 0;padding:20px;display:flex;flex-direction:column;gap:12px}.sheet label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.sheet input{background:var(--bg);border:1px solid #2a2e37;border-radius:8px;padding:10px;color:var(--text)}.stat-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-card{background:var(--card);border-radius:12px;padding:16px;text-align:center}.stat-value{font-size:28px;font-weight:700}.chart{display:flex;align-items:flex-end;gap:3px;height:120px;background:var(--card);border-radius:12px;padding:12px}.bar{flex:1;background:var(--accent);border-radius:2px 2px 0 0;min-height:2px}.muted{color:var(--muted);font-size:13px}.nav{position:fixed;bottom:0;left:0;right:0;max-width:560px;margin:0 auto;display:flex;background:var(--card);border-top:1px solid #23262e}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px;color:var(--muted);text-decoration:none;font-size:11px}.nav-active{color:var(--accent)}.nav-icon{font-size:18px}
