:root{--bg: #F5F2EC;--surface: #FFFDF8;--sunk: #EFEBE3;--sunk-locked: #F1EDE5;--line: #E0DACE;--line-strong: #CFC7B8;--ink: #24302A;--ink-muted: #55605A;--ink-faint: #7E877F;--ink-disabled: #B4AC9C;--on-accent: #FBF8F1;--accent: #24344D;--accent-hover: #1B2841;--accent-soft: rgba(36, 52, 77, .06);--accent-ring: rgba(36, 52, 77, .12);--accent-tint: rgba(36, 52, 77, .1);--control: #D99A3D;--on-control: #1B2841;--player-bg: #16202F;--player-blob-a: #22314A;--player-blob-b: #1E2B3F;--player-title: #F3EEE3;--player-body: #E8E2D6;--player-muted: #A9B3C1;--player-faint: #8C97A8;--player-track: #2A3549;--cat-sleep: #3E4C66;--cat-stress: #3F5A55;--cat-anxiety: #4B5A3F;--cat-gut: #6C5B34;--cat-confidence: #5C4A5E;--cat-habits: #34524F;--cat-motivation: #6A4B4E;--cat-daily: #4E4C42;--font-display: Newsreader, Georgia, "Times New Roman", serif;--font-ui: Archivo, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--r-chip: 6px;--r-row: 10px;--r-card: 14px;--r-sheet: 20px;--r-pill: 999px;--e1: 0 1px 2px rgba(36, 48, 42, .06);--e2: 0 6px 20px rgba(36, 48, 42, .08);--e3: 0 -8px 32px rgba(36, 48, 42, .12);--t-press: .12s cubic-bezier(.3, 0, .7, .2);--t-enter: .18s cubic-bezier(.2, .6, .2, 1);--t-sheet: .24s cubic-bezier(.2, .6, .2, 1);--nav-height: 76px;--safe-bottom: env(safe-area-inset-bottom, 0px)}@media (prefers-reduced-motion: reduce){*{transition-duration:0ms!important;animation:none!important}}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{height:100%;font-size:16px}body{height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:16px;line-height:24px;-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{height:100%;display:flex;flex-direction:column}a{color:var(--accent);text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;outline:none}input,textarea,select{font-family:inherit;outline:none}:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring);border-radius:var(--r-chip)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:2px}.t-display-l{font:300 34px/40px var(--font-display);letter-spacing:-.01em;color:var(--ink)}.t-display-m{font:400 27px/34px var(--font-display);color:var(--ink)}.t-title{font:400 21px/28px var(--font-display);color:var(--ink)}.t-body{font:400 16px/24px var(--font-ui);color:var(--ink)}.t-label{font:500 14px/20px var(--font-ui);color:var(--ink)}.t-caption{font:400 13px/18px var(--font-ui);color:var(--ink-muted)}.t-micro{font:400 12px/16px var(--font-ui);color:var(--ink-muted)}.t-section{font:500 13px/18px var(--font-ui);color:var(--ink-muted)}h1,h2,h3{font-weight:400;font-family:var(--font-display);color:var(--ink)}.page{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--bg);padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px)}.page-plain{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--bg)}.page-content{max-width:480px;margin:0 auto;padding:0 20px}.page-content-wide{max-width:480px;margin:0 auto;padding:0 24px}.status-bar{height:44px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font:500 12px/16px var(--font-ui);color:var(--ink-muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:18px;box-shadow:var(--e1)}.card-current{border-color:var(--line-strong)}.card-locked{background:var(--sunk-locked);border:1px solid var(--line);border-radius:var(--r-row);padding:16px;box-shadow:none}.card-flat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-row);padding:16px;box-shadow:none}.btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;border-radius:var(--r-row);font:500 15px/20px var(--font-ui);cursor:pointer;transition:background var(--t-press),transform var(--t-press);border:none;background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{background:var(--sunk);border-color:transparent;color:var(--ink-disabled);cursor:not-allowed}.btn-lg{height:52px;font:500 16px/22px var(--font-ui)}.btn-ghost{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:48px;background:transparent;border:none;color:var(--ink-muted);font:400 14px/20px var(--font-ui);cursor:pointer;transition:color var(--t-press),transform var(--t-press)}.btn-ghost:hover{color:var(--ink)}.btn-icon{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer}.btn-play{flex:none;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--r-pill);background:var(--control);cursor:pointer;transition:transform var(--t-press),box-shadow var(--t-press)}.footer-cta{flex:none;padding:18px 24px 32px;background:var(--surface);border-top:1px solid var(--line)}.footer-cta-lifted{box-shadow:var(--e3)}.segmented{display:flex;gap:4px;padding:4px;background:var(--sunk);border-radius:var(--r-pill)}.segmented-item{flex:1;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--r-pill);background:transparent;color:var(--ink-muted);font:400 14px/20px var(--font-ui);cursor:pointer;transition:background var(--t-enter),color var(--t-enter),transform var(--t-press)}.segmented-item[aria-selected=true]{background:var(--surface);color:var(--ink);font-weight:500;box-shadow:var(--e1)}.segmented-item:disabled{color:var(--ink-disabled);cursor:not-allowed}.chip{flex:none;height:34px;padding:0 14px;display:flex;align-items:center;border:1px solid transparent;border-radius:var(--r-pill);background:transparent;font:400 13px/18px var(--font-ui);cursor:pointer;white-space:nowrap;position:relative;transition:background var(--t-enter),color var(--t-enter),transform var(--t-press)}.chip:after{content:"";position:absolute;top:-5px;right:0;bottom:-5px;left:0}.chip-all[aria-pressed=true]{background:var(--ink);color:var(--on-accent);font-weight:500}.chip-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.row{display:flex;align-items:center;gap:14px;width:100%;padding:12px 14px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-row);cursor:pointer;transition:border-color var(--t-enter),transform var(--t-press),box-shadow var(--t-press)}.row-progress{border-color:var(--line-strong)}.row-locked{background:var(--sunk-locked);cursor:pointer}.row-title{font:400 18px/24px var(--font-display);color:var(--ink)}.row-locked .row-title{color:var(--ink-muted)}.row-meta{font:400 12px/16px var(--font-ui);color:var(--ink-muted)}.row-locked .row-meta{color:var(--ink-faint)}.row-icon{width:44px;height:44px;flex:none;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center}.row-icon-locked{border:1px solid var(--line-strong)}.track{height:2px;background:var(--line);border-radius:var(--r-pill);overflow:hidden}.track-lg{height:3px}.track>span{display:block;height:100%;background:var(--control);border-radius:var(--r-pill)}.track-program>span{background:var(--accent)}.day{width:44px;height:44px;flex:none;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;font:400 14px/20px var(--font-ui);border:1px solid var(--line);background:transparent;color:var(--ink-disabled)}.day-done{background:var(--accent);border-color:transparent;color:var(--on-accent);font-weight:500}.day-today{border:2px solid var(--control);color:var(--ink);font-weight:500}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-label{font:400 12px/16px var(--font-ui);color:var(--ink-muted)}.form-input{width:100%;height:48px;padding:0 14px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-row);color:var(--ink);font:400 16px/24px var(--font-ui);transition:border-color var(--t-enter),box-shadow var(--t-enter)}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.form-input::placeholder{color:var(--ink-faint)}.form-input-lg{height:52px}.form-textarea{height:auto;min-height:100px;padding:14px;resize:vertical;line-height:24px}.divider{height:1px;background:var(--line);margin:18px 0}.spinner{width:20px;height:20px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.texture{position:relative;overflow:hidden}.texture>.blob{position:absolute;pointer-events:none}.blob-a{border-radius:50% 50% 46% 54%/60% 40%}.blob-b{border-radius:54% 46% 60% 40%/40% 60%}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:calc(100% - 40px);max-width:400px}.toast{padding:14px 18px;border-radius:var(--r-row);font:400 14px/20px var(--font-ui);background:var(--surface);border:1px solid var(--line);box-shadow:var(--e2);pointer-events:all;display:flex;align-items:center;gap:10px}.toast-success{color:var(--ink);border-color:var(--line-strong)}.toast-error{color:#6a4b4e;border-color:#6a4b4e59}.toast-info{color:var(--ink)}button,[role=button]{transition:transform var(--t-press),box-shadow var(--t-press)}button:active:not(:disabled),[role=button]:active:not([aria-disabled=true]){transform:scale(.98);box-shadow:none}.screen{flex:1;min-height:0;display:flex;flex-direction:column;animation:screen-in .2s ease-out both}@keyframes screen-in{0%{opacity:0}to{opacity:1}}.blob-drift{animation:drift 12s ease-in-out infinite alternate;will-change:transform}@keyframes drift{to{transform:translate(8px,-10px) scale(1.05)}}.player-glow{position:absolute;left:50%;top:38%;width:420px;height:420px;margin:-210px 0 0 -210px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--control) 0%,transparent 62%);opacity:.14;animation:breathe 10s ease-in-out infinite;will-change:transform,opacity}.player-glow[data-playing=false]{animation-play-state:paused}@keyframes breathe{50%{transform:scale(1.12);opacity:.24}}.bloom{position:absolute;left:50%;top:42%;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--control) 0%,transparent 68%);animation:bloom 1.8s ease-out both}@keyframes bloom{0%{transform:scale(.2);opacity:.6}to{transform:scale(4);opacity:0}}.fade-in{animation:fade-in .4s ease-out both}.rise{animation:rise .32s ease-out both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.bars{display:flex;align-items:flex-end;gap:2px;height:14px}.bars>span{width:3px;border-radius:1px;background:currentColor;animation:bar .9s ease-in-out infinite}.bars>span:nth-child(2){animation-delay:.2s}.bars>span:nth-child(3){animation-delay:.4s}@keyframes bar{0%,to{height:4px}50%{height:14px}}.skeleton{border-radius:var(--r-row);background:linear-gradient(90deg,var(--sunk) 25%,var(--surface) 50%,var(--sunk) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.skeleton-dark{background:linear-gradient(90deg,var(--player-track) 25%,var(--player-blob-a) 50%,var(--player-track) 75%);background-size:200% 100%}@keyframes shimmer{to{background-position:-200% 0}}
