:root{--bg: #26215c;--surface: #3c3489;--surface-strong: #534ab7;--text: #ffffff;--text-soft: #cecbf6;--text-muted: #afa9ec;--streak: #ef9f27;--streak-text: #412402;--streak-text-soft: #633806;--goal: #5dcaa5;--goal-text: #04342c;--goal-text-soft: #085041;--level: #7f77dd;--level-text-soft: #eeedfe;--level-bar: #f4c0d1;--primary: #ed93b1;--primary-text: #4b1528;--right: #c0dd97;--right-text: #173404;--wrong: #f7c1c1;--wrong-text: #501313;--warn: #faeeda;--warn-text: #633806;--radius-card: 18px;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:16px}button{font:inherit;color:inherit;border:none;cursor:pointer;background:none}input{font:inherit;font-size:16px}.screen{min-height:100%;display:flex;flex-direction:column;gap:12px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 12px);max-width:520px;margin:0 auto}.small{font-size:13px;margin:0;color:var(--text-soft);line-height:1.5}.title{font-size:22px;font-weight:600;margin:0}.card{border-radius:var(--radius-card);padding:14px}.btn-primary{background:var(--primary);color:var(--primary-text);border-radius:var(--radius-card);padding:15px;font-weight:600;font-size:17px;width:100%}.btn-secondary{background:var(--surface);color:var(--text);border-radius:14px;padding:12px;width:100%}.btn-text{color:var(--text-soft);padding:8px;font-size:15px}.field{background:var(--surface);color:var(--text);border:1px solid transparent;border-radius:14px;padding:13px 14px;width:100%;outline:none}.field:focus{border-color:var(--text-muted)}.field::placeholder{color:var(--text-muted)}.bar{height:8px;background:var(--surface);border-radius:4px;overflow:hidden}.bar>div{height:100%;border-radius:4px;transition:width .3s ease}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:space-around;max-width:520px;margin:0 auto;padding:8px 16px calc(env(safe-area-inset-bottom) + 8px);background:var(--bg)}.bottom-nav-space{flex-shrink:0;height:48px}.bottom-nav button{color:#fff;padding:8px 18px;border-bottom:2px solid transparent}.bottom-nav button.active{border-bottom-color:#fff}.ring-done{animation:ring-pulse .9s ease-out 1}@keyframes ring-pulse{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}
