:root{--bg: #f7f4ef;--surface: #fffdf9;--surface-2: #f0ebe2;--ink: #2d3a35;--muted: #5c6b64;--faint: #8a968f;--accent: #3e7c6f;--accent-deep: #2f6157;--accent-soft: #e3ede8;--accent-softer: #f0f5f1;--gold: #c9a86a;--gold-soft: #f4ecdd;--danger: #b4544a;--danger-soft: #f6e6e3;--line: #e7e0d4;--radius: 18px;--radius-sm: 12px;--shadow: 0 2px 12px rgba(45, 58, 53, .06), 0 1px 3px rgba(45, 58, 53, .04);--glass: rgba(255, 253, 249, .92);--font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}:root[data-theme=dark]{--bg: #151a18;--surface: #1f2724;--surface-2: #2a332f;--ink: #e6ebe8;--muted: #a5b2ab;--faint: #7d8a83;--accent: #5f9d8e;--accent-deep: #8ec2b3;--accent-soft: #2c403a;--accent-softer: #233029;--gold: #d4b87e;--gold-soft: #342e20;--danger: #d98880;--danger-soft: #40292a;--line: #2d3631;--shadow: 0 2px 12px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .3);--glass: rgba(31, 39, 36, .92)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:var(--font);background:radial-gradient(1200px 500px at 50% -200px,var(--accent-softer) 0%,var(--bg) 60%);color:var(--ink);font-size:16px;line-height:1.55;min-height:100dvh}#root{min-height:100dvh;display:flex;justify-content:center}.app-frame{width:100%;max-width:440px;min-height:100dvh;display:flex;flex-direction:column;position:relative}h1,h2,h3,h4,p{margin:0}button{font-family:inherit;border:none;background:none;color:inherit;cursor:pointer;padding:0}textarea,input,select{font-family:inherit;font-size:16px;color:var(--ink)}.screen{flex:1;display:flex;flex-direction:column;padding:0 20px;padding-bottom:calc(76px + env(safe-area-inset-bottom));animation:fade-in .25s ease}.screen--bare{padding-bottom:24px}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:18px 0 10px;min-height:56px}.top-bar__title{font-size:17px;font-weight:700}.icon-btn{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);color:var(--ink);transition:background .15s ease}.icon-btn:active{background:var(--surface-2)}.section-label{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:26px 0 12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card--quiet{box-shadow:none;background:var(--accent-softer);border-color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;border-radius:16px;font-size:16px;font-weight:700;transition:transform .1s ease,opacity .15s ease;width:100%}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:default}.btn--primary{background:var(--accent);color:#fff}.btn--ghost{background:transparent;color:var(--accent-deep);border:1.5px solid var(--accent-soft)}.btn--quiet{background:var(--surface-2);color:var(--ink)}.btn--danger{background:var(--danger-soft);color:var(--danger)}.tab-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:440px;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:40}.tab-bar__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 5px;border-radius:14px;color:var(--faint);font-size:11px;font-weight:600;transition:color .15s ease}.tab-bar__item--active{color:var(--accent-deep)}.tab-bar__item svg{display:block}.field{width:100%;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:14px;outline:none;transition:border-color .15s ease;resize:none}.field:focus{border-color:var(--accent)}.char-counter{font-size:12.5px;color:var(--faint);text-align:right;margin-top:6px}.char-counter--max{color:var(--danger);font-weight:700}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:13px;font-weight:600}.chip--accent{background:var(--accent-soft);color:var(--accent-deep)}.mood-picker{display:flex;justify-content:space-between;gap:6px}.mood-picker__item{flex:1;aspect-ratio:1;max-width:72px;border-radius:18px;background:var(--surface);border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:30px;transition:transform .12s ease,border-color .15s ease,background .15s ease}.mood-picker__item:active{transform:scale(.93)}.mood-picker__item--selected{border-color:var(--accent);background:var(--accent-softer);transform:scale(1.06)}.progress-track{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-track__fill{height:100%;border-radius:999px;background:var(--accent);transition:width .3s ease}.row-card{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);transition:transform .1s ease}.row-card:active{transform:scale(.985)}.row-card+.row-card{margin-top:10px}.row-card__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.row-card__tag{font-size:12.5px;font-weight:700;color:var(--accent-deep);display:flex;align-items:center;gap:6px}.row-card__time{font-size:12.5px;color:var(--faint)}.row-card__excerpt{color:var(--muted);font-size:14.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.empty{text-align:center;padding:36px 24px;color:var(--muted)}.empty__art{font-size:40px;margin-bottom:10px}.empty__title{font-weight:700;color:var(--ink);margin-bottom:4px}.empty p{font-size:14.5px}.breath-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;padding:20px 0}.breath-circle-wrap{position:relative;width:240px;height:240px;display:flex;align-items:center;justify-content:center}.breath-circle{width:130px;height:130px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#6da493,var(--accent) 70%);box-shadow:0 0 60px #3e7c6f59;display:flex;align-items:center;justify-content:center;will-change:transform}.breath-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1.5px dashed var(--line)}.breath-instruction{font-size:22px;font-weight:700;text-align:center;min-height:33px}.breath-count{font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}.onboard{flex:1;display:flex;flex-direction:column;padding:24px 24px calc(28px + env(safe-area-inset-bottom))}.onboard__body{flex:1;display:flex;flex-direction:column;justify-content:center}.quiz-option{width:100%;text-align:left;padding:15px 18px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);font-size:15.5px;font-weight:600;color:var(--ink);transition:border-color .12s ease,background .12s ease,transform .1s ease}.quiz-option+.quiz-option{margin-top:10px}.quiz-option:active{transform:scale(.985)}.quiz-option--selected{border-color:var(--accent);background:var(--accent-softer)}.goal-option{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:16px 18px;border-radius:16px;border:1.5px solid var(--line);background:var(--surface);font-size:15.5px;font-weight:600;transition:border-color .12s ease,background .12s ease}.goal-option+.goal-option{margin-top:10px}.goal-option--selected{border-color:var(--accent);background:var(--accent-softer)}.goal-option__emoji{font-size:24px}.score-dial{position:relative;width:190px;height:190px;margin:0 auto}.score-dial__value{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.score-dial__num{font-size:52px;font-weight:800;line-height:1}.score-dial__cap{font-size:13px;color:var(--muted);font-weight:600}.chart-card svg{display:block;width:100%;height:auto}.chart-toggle{display:inline-flex;background:var(--surface-2);border-radius:999px;padding:3px}.chart-toggle__btn{padding:7px 16px;border-radius:999px;font-size:13.5px;font-weight:700;color:var(--muted)}.chart-toggle__btn--active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.duration-picker{display:flex;gap:10px}.duration-picker__item{flex:1;padding:14px 0;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);font-weight:700;font-size:15px;color:var(--ink);transition:border-color .12s ease,background .12s ease}.duration-picker__item--selected{border-color:var(--accent);background:var(--accent-softer);color:var(--accent-deep)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d3a3566;display:flex;align-items:flex-end;justify-content:center;z-index:60;animation:fade-in .15s ease}.sheet{width:100%;max-width:440px;background:var(--surface);border-radius:24px 24px 0 0;padding:22px 22px calc(24px + env(safe-area-inset-bottom));animation:slide-up .22s ease}@keyframes slide-up{0%{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}.sheet__title{font-size:18px;font-weight:800;margin-bottom:6px}.sheet__text{color:var(--muted);font-size:14.5px;margin-bottom:18px}.step-dots{display:flex;gap:6px;justify-content:center}.step-dots__dot{width:7px;height:7px;border-radius:999px;background:var(--line);transition:background .2s ease,width .2s ease}.step-dots__dot--active{background:var(--accent);width:20px}.fab{position:fixed;right:max(20px,calc(50% - 200px));bottom:calc(90px + env(safe-area-inset-bottom));width:58px;height:58px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #2f615766;z-index:45;transition:transform .12s ease}.fab:active{transform:scale(.92)}.divider{height:1px;background:var(--line);border:none;margin:14px 0}.text-muted{color:var(--muted)}.text-small{font-size:14px}.link-btn{color:var(--accent-deep);font-weight:700;text-decoration:underline;text-underline-offset:3px}.streak-flame{font-size:15px}.disclaimer{font-size:12.5px;color:var(--faint);text-align:center;padding:18px 8px 4px;line-height:1.5}
