@font-face{font-family:Inter;src:url(/inter.woff2) format("woff2");font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{--bg:#fff;--fg:#111;--muted:#777;--line:#e8e8e8;--soft:#f6f6f6;--inverse:#fff;--inverted:#141414;background:var(--bg);color:var(--fg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-tap-highlight-color:transparent}html[data-theme=dark]{--bg:#000;--fg:#f5f5f5;--muted:#999;--line:#292929;--soft:#111;--inverse:#080808;--inverted:#f0f0f0;color-scheme:dark}body{margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;min-height:48px}button:disabled{opacity:.45;cursor:wait}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--fg);outline-offset:5px}button,a,input,textarea{touch-action:manipulation}button{transition:background .22s,transform .22s,opacity .22s}button:active{transform:scale(.98)}h1,h2,p{margin:0}h1{font-size:46px;font-weight:300;line-height:1.12;letter-spacing:-2.1px}h2{font-weight:400;letter-spacing:-.8px}p{color:var(--muted);font-size:14px;line-height:1.7}.app{max-width:520px;margin:0 auto;padding:0 26px 60px;min-height:100dvh;animation:appear .25s ease}.home-header{display:flex;align-items:center;justify-content:space-between;padding-top:max(32px,env(safe-area-inset-top));height:104px}.wordmark{font-size:24px;letter-spacing:-1px;font-weight:500}.wordmark span{display:block;font-size:8px;letter-spacing:2px;margin-top:7px;color:var(--muted);font-weight:500}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;flex-shrink:0}.icon-button:hover{background:var(--soft)}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;color:var(--muted);line-height:1.6}.hero{padding:39px 0 43px}.hero h1{margin:17px 0 15px}.hero h1 span{color:var(--muted)}.section-label{display:flex;justify-content:space-between;font-size:9px;font-weight:600;letter-spacing:1.8px;color:var(--muted);margin-bottom:16px}.cards{padding-bottom:135px;display:flex;flex-direction:column;gap:14px}.date-card{border:1px solid var(--line);border-radius:20px;position:relative;overflow:hidden}.card-open{width:100%;text-align:left;padding:23px 23px 22px;display:block}.date-card.today{background:var(--inverted);color:var(--inverse);border-color:var(--inverted)}.card-eyebrow{display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:2px;font-size:9px;font-weight:500;margin-bottom:18px;color:var(--muted)}.today .card-eyebrow{color:inherit;opacity:.6}.date-card h2{font-size:26px;line-height:1.3;padding-right:20px;font-weight:300}.card-title{margin-top:8px;color:inherit;opacity:.7}.card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:24px;font-size:11px;color:var(--muted);gap:14px}.today .card-bottom{color:inherit;opacity:.65}.progress-track{height:2px;min-width:55px;width:65px;background:var(--line);overflow:hidden}.progress-track>span{display:block;background:var(--fg);height:100%;transition:width .25s}.today .progress-track{background:#666}.today .progress-track>span{background:var(--inverse)}.card-delete{position:absolute;right:4px;top:54px;opacity:.45;width:48px}.card-delete:hover{opacity:1;background:transparent}.fixed-footer{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;flex-direction:column;padding:22px 24px max(18px,env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 20%);pointer-events:none;z-index:2}.primary{background:var(--fg);color:var(--bg);border-radius:16px;min-height:54px;display:flex;align-items:center;justify-content:center;gap:12px;padding:0 25px;font-size:13px;font-weight:500;width:100%}.pill{border-radius:40px;min-height:58px;width:226px;pointer-events:auto}.footnote{display:flex;gap:5px;align-items:center;font-size:9px;color:var(--muted);margin-top:14px}.empty-state{text-align:center;padding:39px 10px 0;color:var(--muted)}.empty-state h2{font-size:21px;color:var(--fg);margin:20px 0 9px}.topbar{display:flex;align-items:center;justify-content:space-between;height:96px;padding-top:14px;margin-left:-12px;margin-right:-12px;font-size:12px;gap:8px}.topbar>span:last-child{min-width:48px;text-align:right}.step-label{font-size:9px;color:var(--muted);letter-spacing:1px;margin-right:12px}.new-hero{padding-top:24px}.new-hero h1{margin-top:15px;margin-bottom:17px}.fields{display:grid;grid-template-columns:1fr;gap:22px;margin:32px 0 34px}label{display:block}label>.eyebrow{display:block;margin-bottom:10px}input{display:block;border:0;border-bottom:1px solid var(--line);padding:12px 0;width:100%;background:transparent;min-height:48px;font-size:14px;border-radius:0}input::placeholder,textarea::placeholder{color:#999;opacity:1}input[type=date]{min-width:0;appearance:none;-webkit-appearance:none}.muted{opacity:.6;font-weight:400}.chat-label{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--muted);margin-bottom:13px}.avatar{width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:400;color:var(--fg)}.message-box{border:1px solid var(--line);border-radius:20px;background:var(--soft);padding:19px 17px 13px}textarea{resize:vertical;min-height:157px;width:100%;border:0;outline:none;background:none;font-size:15px;line-height:1.85}textarea:focus-visible{outline:none}.message-box:focus-within{border-color:var(--muted)}.message-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.message-actions>span{font-size:7px;letter-spacing:1.2px;color:var(--muted)}.send-button{border-radius:50px;background:var(--fg);color:var(--bg);min-width:72px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;padding:0 10px}.parser-note{display:flex;align-items:center;gap:8px;font-size:9px;color:var(--muted);margin-top:17px;line-height:1.7}.writing-tips{margin-top:22px;border-top:1px solid var(--line);padding-top:8px}summary{cursor:pointer;min-height:48px;align-content:center;font-size:12px;color:var(--muted)}details p{font-size:12px;margin-bottom:10px}.view-hero{padding:25px 0 30px}.view-hero h1{font-size:49px;margin:12px 0}.view-hero>p{margin-bottom:29px}.completion{display:flex;align-items:center;gap:18px;font-size:8px;color:var(--muted);letter-spacing:1.4px}.completion .progress-track{flex:1}.task-list{border-top:1px solid var(--line)}.task-row{display:flex;align-items:center;text-align:left;justify-content:space-between;width:100%;padding:24px 0;border-bottom:1px solid var(--line);gap:18px}.task-text{display:flex;flex-direction:column;gap:9px;min-width:0;overflow-wrap:anywhere}.task-text strong{font-size:12px;letter-spacing:-.1px;font-weight:600}.task-text strong small{font-size:11px;font-weight:400;color:var(--muted)}.task-text>span{font-size:16px;font-weight:350;line-height:1.4}.task-check{width:22px;height:22px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.done .task-check{background:#16a34a;color:#fff;border-color:#16a34a}.done .task-text{color:var(--muted)}.done .task-text>span{text-decoration:line-through;text-decoration-color:#16a34a;text-decoration-thickness:2px}.view-bottom{display:flex;gap:14px;align-items:center;justify-content:center;margin:34px 0}.view-bottom p{font-size:10px}.tiny-rule{height:1px;background:var(--line);width:26px}.anytime{padding-top:25px}.menu-overlay{position:fixed;inset:0;background:#0003;z-index:8;padding:85px 24px 24px;display:flex;justify-content:center;align-items:flex-start}.menu{max-width:400px;width:100%;border:1px solid var(--line);background:var(--bg);padding:10px;border-radius:18px}.menu button{display:flex;align-items:center;gap:13px;text-align:left;width:100%;font-size:13px;border-radius:12px;padding:0 12px;min-height:52px}.menu button:hover{background:var(--soft)}.settings-hero{padding:25px 0 36px}.settings-hero h1{margin-top:16px;font-size:43px}.setting-group{margin-bottom:30px}.setting-group>.eyebrow{margin-bottom:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:65px;text-align:left;border-bottom:1px solid var(--line);gap:12px;font-size:13px}.setting-name{display:flex;align-items:center;gap:13px}.setting-name svg{stroke-width:1.3;flex-shrink:0}.toggle{height:26px;width:44px;border:1px solid var(--line);background:var(--soft);padding:3px;border-radius:30px;flex-shrink:0}.toggle>span{height:18px;width:18px;display:block;border-radius:50%;background:var(--muted);transition:transform .25s}.toggle.on{background:var(--fg)}.toggle.on>span{transform:translate(17px);background:var(--bg)}.badge{border:1px solid var(--line);padding:5px 7px;border-radius:5px;font-size:8px;white-space:nowrap;color:var(--muted)}.setting-help{font-size:11px;margin-top:13px;line-height:1.8}.settings-footer{text-align:center;padding:36px 0 5px}.settings-footer>span{font-size:22px;letter-spacing:-1px}.settings-footer p{font-size:11px;margin:7px 0 17px}.settings-footer small{font-size:7px;letter-spacing:1.5px;color:var(--muted)}.privacy-details{border-top:1px solid var(--line)}.overlay{position:fixed;inset:0;background:#0006;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px}.dialog{background:var(--bg);border:1px solid var(--line);border-radius:20px;max-width:360px;width:100%;padding:28px;animation:appear .25s}.dialog h2{font-size:26px;line-height:1.2;margin-bottom:15px}.dialog p{font-size:13px;line-height:1.8;margin-bottom:25px}.dialog label{font-size:12px;margin:20px 0 25px;color:var(--muted)}.dialog .text-button{width:100%;margin-top:8px}.mini-icon{margin-bottom:19px}.toast{position:fixed;bottom:140px;left:50%;transform:translate(-50%);background:var(--fg);color:var(--bg);font-size:11px;padding:14px 19px;border-radius:40px;display:flex;align-items:center;gap:9px;z-index:40;max-width:90vw;line-height:1.5;width:max-content;box-shadow:0 0 0 1px var(--bg)}.toast svg{flex-shrink:0}.error{font-size:12px;margin:15px 0}.text-button{font-size:12px;color:var(--muted);min-height:48px;padding:0 6px}.lock-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:38px 24px 22px;position:relative;max-width:520px;margin:auto}.lock-brand{display:flex;flex-direction:column;align-items:center;gap:14px;font-size:9px;letter-spacing:3px;font-weight:600}.brand-mark{width:52px;height:52px;border:1px solid var(--line);border-radius:17px;display:flex;align-items:center;justify-content:center}.pin-content{text-align:center;width:100%;margin-top:51px}.pin-content h1{font-size:30px;letter-spacing:-1px;margin:13px 0 12px}.pin-content p{font-size:12px}.pin-dots{display:flex;gap:18px;justify-content:center;margin:29px 0 13px}.pin-dots>span{width:12px;height:12px;border:1px solid #bbb;border-radius:50%;transition:background .2s}.pin-dots .filled{background:var(--fg);border-color:var(--fg)}.pin-error{height:36px;font-size:11px;color:var(--muted);line-height:1.6}.keypad{display:grid;grid-template-columns:repeat(3,1fr);max-width:288px;margin:2px auto 14px;gap:6px 12px}.keypad button{height:65px;border-radius:50px;display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:300}.keypad button:hover{background:var(--soft)}.lock-footer{display:flex;align-items:center;gap:6px;font-size:9px;color:var(--muted);margin-top:auto;padding-top:28px}.privacy-screen{position:fixed;inset:0;background:var(--bg);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;font-weight:300;letter-spacing:1px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.shake{animation:shake .25s}.loading-dot{height:8px;width:8px;border-radius:50%;background:currentColor;animation:pulse .6s infinite alternate}@keyframes appear{0%{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}@keyframes shake{25%{translate:-6px}75%{translate:6px}}@keyframes pulse{to{opacity:.2}}@media(min-width:720px){body{background:var(--soft)}.app,.lock-screen{background:var(--bg);border-left:1px solid var(--line);border-right:1px solid var(--line);padding-left:38px;padding-right:38px}.fixed-footer{max-width:518px;left:50%;transform:translate(-50%)}.lock-screen{padding-top:48px}}@media(max-width:350px){.app{padding-left:20px;padding-right:20px}h1{font-size:40px}.date-card h2{font-size:22px}.card-open{padding-left:18px}.pin-content{margin-top:30px}.pin-content h1{font-size:27px}.lock-screen{padding-top:25px}.keypad button{height:56px}.badge{font-size:7px}.setting-name{gap:8px}.setting-row{font-size:12px}.message-actions>span{font-size:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.padhai-open{margin-top:10px;border:1.5px solid var(--fg);background:var(--bg);color:var(--fg);font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;font-family:inherit;cursor:pointer}
.padhai-overlay{position:fixed;inset:0;z-index:9999;background:var(--bg);color:var(--fg);overflow-y:auto;font-family:Inter,system-ui,sans-serif}
.padhai-wrap{max-width:518px;margin:0 auto;padding:0 24px 60px}
.padhai-top{display:flex;align-items:center;justify-content:space-between;height:96px;padding-top:14px;font-size:12px}
.padhai-back{width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--fg);font-size:20px;cursor:pointer}
.padhai-back:hover{background:var(--soft)}
.padhai-hero{padding:10px 0 24px}
.padhai-hero h1{font-size:42px;margin:12px 0;font-weight:600;letter-spacing:-1px}
.padhai-card{border:1px solid var(--line);border-radius:20px;padding:20px;margin-bottom:22px}
.padhai-cats{display:flex;gap:10px;margin:14px 0}
.padhai-cat{flex:1;min-height:48px;border-radius:14px;border:1.5px solid var(--line);background:var(--bg);color:var(--fg);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer}
.padhai-cat.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.padhai-row{display:flex;gap:10px;margin:14px 0}
.padhai-field{flex:1;min-width:0}
.padhai-field label{display:block;font-size:9px;letter-spacing:2px;font-weight:600;color:var(--muted);margin-bottom:8px}
.padhai-field input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);padding:12px;font-size:15px;font-family:inherit}
.padhai-add{width:100%;min-height:52px;border-radius:14px;border:none;background:var(--fg);color:var(--bg);font-size:13px;font-weight:600;letter-spacing:1px;font-family:inherit;cursor:pointer}
.padhai-err{color:#c00;font-size:12px;margin-top:8px;min-height:0}
.padhai-err:empty{display:none}
.padhai-stats{display:flex;gap:10px;margin:14px 0 4px}
.padhai-stat{flex:1;border:1px solid var(--line);border-radius:14px;padding:14px;min-width:0}
.padhai-stat b{display:block;font-size:17px;margin-top:6px;font-weight:600;overflow-wrap:anywhere}
.padhai-chart{display:flex;align-items:flex-end;justify-content:space-between;height:150px;margin:18px 0 10px;gap:4px}
.padhai-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.padhai-bar{width:22px;display:flex;flex-direction:column-reverse;border-radius:4px;overflow:hidden;background:var(--line)}
.padhai-seg-p{background:#16a34a;width:100%}
.padhai-seg-c{background:var(--fg);width:100%}
.padhai-day{font-size:9px;color:var(--muted);margin-top:6px;text-align:center;white-space:nowrap}
.padhai-val{font-size:9px;color:var(--muted);margin-bottom:4px;white-space:nowrap}
.padhai-legend{display:flex;gap:16px;font-size:11px;color:var(--muted)}
.padhai-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.padhai-entry{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.padhai-entry:last-child{border-bottom:none}
.padhai-entry small{color:var(--muted);display:block;font-size:11px;margin-top:2px}
.padhai-del{background:none;border:none;color:var(--muted);font-size:15px;cursor:pointer;padding:8px;flex-shrink:0}
.padhai-empty{color:var(--muted);font-size:13px;padding:14px 0}
.padhai-eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;color:var(--muted)}
.padhai-sub{color:var(--muted);font-size:13px;line-height:1.5;margin:0}
.padhai-auto{display:inline-block;font-size:9px;letter-spacing:1px;font-weight:600;color:#16a34a;border:1px solid #16a34a;border-radius:6px;padding:1px 5px;vertical-align:2px;margin-left:6px}

/* ---- Aesthetic opening (r9) ---- */
@keyframes rise{0%{opacity:0;transform:translateY(14px)}100%{opacity:1;transform:translateY(0)}}
@keyframes fadeDown{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}
@keyframes markIn{0%{opacity:0;transform:scale(.7)}100%{opacity:1;transform:scale(1)}}
@keyframes dotPop{0%{transform:scale(.4)}60%{transform:scale(1.35)}100%{transform:scale(1)}}
@keyframes driftA{0%{transform:translate(0,0)}100%{transform:translate(34px,26px)}}
@keyframes driftB{0%{transform:translate(0,0)}100%{transform:translate(-30px,-22px)}}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Splash */
.privacy-screen svg{animation:markIn .7s cubic-bezier(.2,.8,.2,1) both}
.privacy-screen span{animation:rise .6s .18s cubic-bezier(.2,.7,.2,1) both;font-size:13px;letter-spacing:5px;text-transform:uppercase;font-weight:400}
.privacy-screen::after{content:"";width:110px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--line) 0%,var(--fg) 50%,var(--line) 100%);background-size:200% 100%;animation:shimmer 1.5s linear infinite;opacity:.75}

/* Lock screen ambience */
.lock-screen{overflow:hidden}
.lock-screen::before,.lock-screen::after{content:"";position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none;opacity:.55}
.lock-screen::before{width:300px;height:300px;top:-90px;right:-110px;background:radial-gradient(closest-side,var(--line),transparent 72%);animation:driftA 11s ease-in-out infinite alternate}
.lock-screen::after{width:260px;height:260px;bottom:-70px;left:-100px;background:radial-gradient(closest-side,var(--line),transparent 72%);animation:driftB 13s ease-in-out infinite alternate}
.lock-brand,.pin-content,.lock-footer{position:relative;z-index:1}
.lock-brand{animation:fadeDown .6s cubic-bezier(.2,.7,.2,1) both}
.brand-mark{animation:markIn .7s .12s cubic-bezier(.2,.8,.2,1) both;background:var(--bg);box-shadow:0 12px 32px -14px rgba(0,0,0,.28)}
.lock-brand>span{animation:rise .55s .25s cubic-bezier(.2,.7,.2,1) both}
.pin-content>*{animation:rise .55s cubic-bezier(.2,.7,.2,1) both}
.pin-content>*:nth-child(1){animation-delay:.18s}
.pin-content>*:nth-child(2){animation-delay:.26s}
.pin-content>*:nth-child(3){animation-delay:.32s}
.pin-content>*:nth-child(4){animation-delay:.38s}
.pin-content>*:nth-child(5){animation-delay:.42s}
.pin-content>*:nth-child(6){animation-delay:.48s}
.pin-content>*:nth-child(7){animation-delay:.55s}
.lock-footer{animation:rise .6s .6s cubic-bezier(.2,.7,.2,1) both}

/* PIN dots */
.pin-dots>span{width:14px;height:14px;border-color:var(--muted);transition:background .2s,border-color .2s}
.pin-dots .filled{animation:dotPop .28s cubic-bezier(.2,.8,.2,1)}

/* Keypad */
.keypad button{background:var(--soft);border:1px solid var(--line);box-shadow:0 3px 12px -8px rgba(0,0,0,.35);transition:transform .15s ease,background .2s,box-shadow .2s}
.keypad button:hover{background:var(--bg)}
.keypad button:active{transform:scale(.92);box-shadow:none}

/* Home entrance */
.home-header{animation:fadeDown .5s cubic-bezier(.2,.7,.2,1) both}
.hero>*{animation:rise .55s cubic-bezier(.2,.7,.2,1) both}
.hero>*:nth-child(2){animation-delay:.08s}
.hero>*:nth-child(3){animation-delay:.16s}
.section-label{animation:rise .5s .2s cubic-bezier(.2,.7,.2,1) both}
.cards>*{animation:rise .5s cubic-bezier(.2,.7,.2,1) both}
.cards>*:nth-child(1){animation-delay:.22s}
.cards>*:nth-child(2){animation-delay:.3s}
.cards>*:nth-child(3){animation-delay:.38s}
.cards>*:nth-child(n+4){animation-delay:.46s}
.fixed-footer{animation:rise .55s .3s cubic-bezier(.2,.7,.2,1) both}

@media (prefers-reduced-motion:reduce){
.privacy-screen svg,.privacy-screen span,.privacy-screen::after,.lock-screen::before,.lock-screen::after,.lock-brand,.brand-mark,.lock-brand>span,.pin-content>*,.lock-footer,.pin-dots .filled,.home-header,.hero>*,.section-label,.cards>*,.fixed-footer{animation:none!important}
}
