@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@500;600&display=swap";:root{--bg:#f7f6f2;--surface:#fffdfa;--surface-2:#f0eee8;--text:#2d352f;--muted:#788078;--accent:#6c8974;--accent-deep:#4e6c58;--accent-soft:#dfe9df;--rose:#c98d88;--border:#e4e3dc;--danger:#b45855;--shadow:0 18px 50px #36413914;--radius:24px;color:var(--text);background:var(--bg);font-synthesis:none;font-family:DM Sans,sans-serif}:root[data-theme=dark]{--bg:#171c18;--surface:#202722;--surface-2:#29312b;--text:#edf1ed;--muted:#a5ada6;--border:#374139;--accent:#9bbba3;--accent-deep:#b7d0bd;--accent-soft:#304338;--shadow:0 18px 50px #00000038}@media (prefers-color-scheme:dark){:root[data-theme=system]{--bg:#171c18;--surface:#202722;--surface-2:#29312b;--text:#edf1ed;--muted:#a5ada6;--border:#374139;--accent:#9bbba3;--accent-deep:#b7d0bd;--accent-soft:#304338}}*{box-sizing:border-box}html{background:var(--bg);min-height:100%}body{background:radial-gradient(circle at 80% 0%, #bbd3c038, transparent 32%),var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a,input,textarea,select{transition:transform .16s,box-shadow .16s,border-color .16s,background-color .16s}button:active,.card[href]:active{transform:scale(.98)}:where(button,a,input,textarea,select):focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:3px}button{color:inherit}h1,h2,p{margin-top:0}h1,h2{letter-spacing:-.025em;font-family:Playfair Display,serif}h1{margin-bottom:.5rem;font-size:clamp(2rem,4vw,3rem);line-height:1.08}h2{font-size:1.35rem}.shell{min-height:100vh}.sidebar{border-right:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:5;width:240px;padding:36px 24px;position:fixed;inset:0 auto 0 0}.brand{color:var(--text);align-items:center;gap:12px;margin:0 10px 54px;font-family:Playfair Display;font-size:1.5rem;text-decoration:none;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#88a58f,#587362);border-radius:50% 50% 48% 52%;place-items:center;width:38px;height:38px;display:inline-grid;box-shadow:0 8px 20px #6c897433}.brand-mark.large{width:64px;height:64px;font-size:1.7rem}.sidebar nav{gap:8px;display:grid}.sidebar nav a{color:var(--muted);border-radius:14px;align-items:center;gap:14px;padding:13px 16px;font-weight:500;text-decoration:none;display:flex}.sidebar nav a svg{width:20px}.sidebar nav a.active{color:var(--accent-deep);background:var(--accent-soft)}.main{min-height:100vh;margin-left:240px}.page{width:min(900px,100% - 48px);margin:auto;padding:54px 0 100px}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-header h1{margin:0}.eyebrow{color:var(--accent-deep);text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:600}.bottom-nav{display:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.button{cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 20px;font-weight:600;display:inline-flex}.button svg{width:18px}.button.primary{background:var(--accent-deep);color:#fff}.button.ghost{background:var(--surface-2)}.button.danger{color:var(--danger)}.button.wide{width:100%}.button:disabled{opacity:.45;cursor:not-allowed}.icon-button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.icon-button svg{width:20px}.icon-button.filled{background:var(--accent-soft);color:var(--accent-deep)}.date-strip{grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:22px;display:grid}.date-strip>button{min-width:0;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:18px;place-items:center;gap:3px;padding:9px 5px;display:grid}.date-strip span{font-size:.75rem}.date-strip strong{font-size:1rem}.date-strip i{height:12px;font-size:.66rem;font-style:normal}.date-strip .active{background:var(--accent-deep);color:#fff;box-shadow:0 9px 22px #4e6c5830}.hero-grid{grid-template-columns:2fr 1fr;gap:18px;display:grid}.weight-hero{padding:30px}.weight-hero>span,.mini span,.goal-feature span,.goal-stats span{color:var(--muted);font-size:.85rem}.weight-hero>div{margin:15px 0 4px}.weight-hero strong{font-family:Playfair Display;font-size:4.5rem;line-height:1}.weight-hero small{color:var(--muted);margin-left:8px;font-size:1rem}.weight-hero time{color:var(--muted)}.goal-card{color:inherit;place-items:center;padding:24px;text-decoration:none;display:grid}.goal-card p{margin:10px 0 0}.goal-ring{aspect-ratio:1;background:conic-gradient(var(--accent) var(--progress),var(--accent-soft) 0);border-radius:50%;place-items:center;width:138px;display:grid;position:relative}.goal-ring:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:10px}.goal-ring>div{z-index:1;text-align:center;display:grid}.goal-ring strong{font-family:Playfair Display;font-size:1.7rem}.goal-ring span{color:var(--muted);font-size:.72rem}.goal-ring.large{width:190px}.goal-ring.large:after{inset:14px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0;display:grid}.metric-grid>div,.metric-grid article{background:var(--surface);border:1px solid var(--border);border-radius:18px;gap:8px;padding:18px;display:grid}.metric-grid span{color:var(--muted);font-size:.75rem}.metric-grid strong{font-size:1.25rem}.preview{padding:24px}.spark-bars{grid-template-columns:repeat(7,1fr);align-items:end;gap:12px;height:135px;display:grid}.spark-bars>div{flex-direction:column;justify-content:end;align-items:center;gap:8px;height:100%;display:flex}.spark-bars i{background:linear-gradient(var(--accent),var(--accent-soft));border-radius:20px;width:100%;max-width:32px;min-height:4px;display:block}.spark-bars span{color:var(--muted);font-size:.72rem}.fab{display:none}.empty-card{text-align:center;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:60px 20px}.empty-card .ready-orb{margin:auto}.calendar{padding:24px}.calendar-head,.section-head{justify-content:space-between;align-items:center;display:flex}.calendar-head h2{margin:0}.calendar-week,.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.calendar-week{color:var(--muted);margin-top:20px;font-size:.75rem}.calendar-grid button{aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:50%;place-content:center;gap:1px;display:grid;position:relative}.calendar-grid button small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.58rem}.calendar-grid button.outside{opacity:.3}.calendar-grid button.selected{background:var(--accent-deep);color:#fff}.calendar-grid button.selected small{color:#fff}.day-list{margin-top:28px}.section-head span,.muted{color:var(--muted)}.entry-row{border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;width:100%;padding:18px 4px;display:flex}.entry-row div{gap:4px;display:grid}.entry-row span{color:var(--muted)}.entry-row b{font-size:1.3rem}.entry-row small{color:var(--muted);font-weight:400}.segmented{background:var(--surface-2);border-radius:16px;margin-bottom:14px;padding:4px;display:flex;overflow:auto}.segmented button{min-width:58px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:1;padding:10px}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:0 3px 12px #0000000a}.segmented.compact{width:max-content}.chart-card{padding:20px 10px}.chart-empty{height:340px;color:var(--muted);place-items:center;display:grid}.chart-tooltip{border:1px solid var(--border);background:var(--surface);min-width:170px;box-shadow:var(--shadow);border-radius:16px;gap:5px;padding:13px 15px;font-size:.78rem;display:grid}.chart-tooltip strong{font-size:.84rem}.chart-tooltip span{color:var(--muted)}.chart-tooltip b{color:var(--accent-deep);font-size:1.05rem}.goal-feature{text-align:center;justify-content:center;align-items:center;gap:55px;padding:40px;display:flex}.goal-feature h2{margin:.5rem 0;font-size:2rem}.goal-stats{grid-template-columns:repeat(4,1fr);margin:18px 0;display:grid}.goal-stats>div{text-align:center;gap:8px;padding:25px 12px;display:grid}.goal-stats>div+div{border-left:1px solid var(--border)}.goal-stats strong{font-size:1.25rem}.inline-form{flex-wrap:wrap;align-items:end;gap:15px;padding:22px;display:flex}.inline-form label{flex:1;min-width:180px}.settings-section{margin-bottom:18px;padding:26px}.settings-section>label{border-top:1px solid var(--border);grid-template-columns:1fr 180px;align-items:center;padding:14px 0;display:grid}.form-stack{gap:16px;margin-top:26px;display:grid}label{gap:7px;font-size:.86rem;font-weight:500;display:grid}input,textarea,select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:12px;outline:none;padding:12px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-error{color:var(--danger);font-size:.82rem}.center-page{place-items:center;min-height:100vh;padding:24px;display:grid}.setup-card,.auth-card,.onboarding-card{background:var(--surface);border:1px solid var(--border);width:min(480px,100%);box-shadow:var(--shadow);border-radius:32px;padding:44px}.setup-card{text-align:center;gap:16px;display:grid}.setup-card .brand-mark{margin:auto}.setup-card code{background:var(--surface-2);text-align:left;border-radius:12px;padding:12px;display:block;overflow:auto}.auth-card{text-align:center}.auth-card .form-stack{text-align:left}.onboarding-card{flex-direction:column;gap:18px;min-height:535px;display:flex}.step-dots{gap:6px;display:flex}.step-dots i{background:var(--border);border-radius:4px;flex:1;height:4px}.step-dots i.active{background:var(--accent)}.onboarding-actions{justify-content:space-between;margin-top:auto;display:flex}.ready-orb{width:100px;height:100px;color:var(--accent-deep);background:radial-gradient(circle,#fff 15%,var(--accent-soft));border-radius:50%;place-items:center;margin:30px auto 10px;font-size:2.5rem;display:grid}.app-loading{place-items:center;height:100vh;display:grid}.app-loading span{animation:1.4s ease-in-out infinite pulse}.dialog-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:20;background:#23302866;position:fixed;inset:0}.dialog-content{z-index:21;background:var(--surface);border-radius:28px;width:min(520px,100% - 32px);padding:28px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 25px 80px #18231c44}.dialog-head,.dialog-actions{justify-content:space-between;align-items:center;display:flex}.dialog-head h2{margin:0}.editor-shell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.editor-toolbar{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;gap:3px;padding:10px;display:flex}.editor-toolbar button{cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.editor-toolbar button.active{background:var(--accent-soft);color:var(--accent-deep)}.editor-toolbar svg{width:18px}.editor-toolbar select{width:84px;padding:6px}.color-input{width:38px;height:38px;padding:5px}.journal-editor{outline:none;min-height:480px;padding:34px;line-height:1.75}.journal-editor p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--muted);float:left;pointer-events:none;height:0}.journal-editor blockquote{border-left:3px solid var(--accent);color:var(--muted);padding-left:18px}.save-status{color:var(--muted);margin:8px 0 0}.save-status.error{color:var(--danger)}@keyframes pulse{50%{opacity:.65;transform:scale(.92)}}@media (width<=760px){.sidebar{display:none}.main{margin:0}.page{width:calc(100% - 32px);padding:28px 0 110px}.bottom-nav{z-index:10;background:color-mix(in srgb,var(--surface) 92%,transparent);border-top:1px solid var(--border);padding:7px 8px calc(7px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;position:fixed;inset:auto 0 0}.bottom-nav a{color:var(--muted);flex:1;place-items:center;gap:3px;min-height:48px;font-size:.62rem;text-decoration:none;display:grid}.bottom-nav a svg{width:19px}.bottom-nav a.active{color:var(--accent-deep)}.page-header{margin-bottom:20px}.desktop-add{display:none}.hero-grid{grid-template-columns:1fr 130px}.weight-hero{padding:24px}.weight-hero strong{font-size:3.4rem}.goal-ring{width:105px}.metric-grid{grid-template-columns:repeat(2,1fr)}.fab{right:20px;bottom:calc(82px + env(safe-area-inset-bottom));background:var(--accent-deep);color:#fff;z-index:7;border:0;border-radius:50%;place-items:center;width:56px;height:56px;display:grid;position:fixed;box-shadow:0 10px 30px #39544455}.dialog-content{width:100%;padding-bottom:calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;top:auto;bottom:0;left:0;transform:none}.goal-feature{gap:25px;padding:28px 18px}.goal-ring.large{width:145px}.journal-editor{min-height:450px;padding:22px}.setup-card,.auth-card,.onboarding-card{padding:30px}.settings-section>label{grid-template-columns:1fr 140px}}@media (width<=420px){.hero-grid{grid-template-columns:1fr}.goal-card{display:none}.date-strip{gap:3px}.calendar{padding:14px}.weight-hero strong{font-size:3rem}.goal-feature{flex-direction:column}.settings-section>label{grid-template-columns:1fr;gap:8px}}@media (width<=760px){.goal-stats{grid-template-columns:repeat(2,1fr)}.goal-stats>div:nth-child(3){border-left:0}.goal-stats>div:nth-child(n+3){border-top:1px solid var(--border)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
