.lock-screen{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:var(--rainbow);position:relative}.lock-card{width:100%;max-width:360px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r-lg);padding:34px 28px;box-shadow:var(--shadow);border:1px solid color-mix(in srgb,var(--surface) 50%,transparent)}.lock-heart{font-size:56px;line-height:1}.lock-title{font-size:28px;margin:14px 0 2px}.lock-hello{font-size:26px;color:#a98bbf;margin:0 0 22px}.lock-links{margin-top:18px;font-size:12.5px;line-height:1.9;display:flex;flex-direction:column}.lock-version{position:absolute;bottom:16px;font-size:12px}.lock-error{margin-top:12px;font-size:13px;font-weight:600;color:#b4456b;background:color-mix(in srgb,var(--blush) 45%,var(--surface));border-radius:var(--r-md);padding:9px 12px}.recovery-key{font-family:ui-monospace,Cascadia Code,monospace;font-size:16px;letter-spacing:1px;color:var(--ink);background:var(--surface-2);border:1px dashed var(--lavender);border-radius:var(--r-md);padding:14px;margin:16px 0 10px;white-space:pre-wrap;word-break:break-all}.recovery-actions{display:flex;justify-content:center;margin-bottom:14px}.saved-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink);text-align:left;margin-bottom:14px;cursor:pointer}.saved-check input{width:18px;height:18px;accent-color:#b79be0}.rich{display:flex;flex-direction:column}.rich .toolbar{position:sticky;top:60px;z-index:5;background:color-mix(in srgb,var(--surface) 70%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--r-md);margin-bottom:6px}.tool.on{background:color-mix(in srgb,var(--lavender) 55%,var(--surface));color:var(--ink);outline:2px solid var(--lavender)}.tool s{text-decoration:line-through}.tool.color{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}.tool.color input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.emoji-wrap{position:relative}.emoji-pop{position:absolute;top:36px;left:0;z-index:30;width:252px;max-height:200px;overflow-y:auto;display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:8px;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow);border:1px solid var(--line)}.emoji-item{border:0;background:transparent;font-size:20px;padding:4px;border-radius:8px;cursor:pointer}.emoji-item:hover{background:var(--surface-2)}.rich-content .ProseMirror{min-height:200px;outline:0;font-size:15px;line-height:1.7;color:#534d5e}.theme-night .rich-content .ProseMirror{color:#ece4f5}[data-theme=dark] .rich-content .ProseMirror{color:var(--ink)}.rich-content .ProseMirror p{margin:10px 0}.rich-content .ProseMirror h2{font-family:Caveat,cursive;font-size:26px;color:#4a6b86;margin:14px 0 4px}.theme-night .rich-content .ProseMirror h2{color:#d9b8e8}.rich-content .ProseMirror ul,.rich-content .ProseMirror ol{padding-left:22px;margin:8px 0}.rich-content .ProseMirror a{color:#a07cc0;text-decoration:underline}.rich-content .ProseMirror img{max-width:100%;border-radius:var(--r-md);box-shadow:var(--shadow-sm);margin:10px 0}.rich-content .ProseMirror mark{border-radius:4px;padding:0 2px}.rich-content .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--ink-soft);opacity:.7;pointer-events:none;height:0}.today{display:grid;grid-template-columns:210px 1fr;gap:16px;align-items:start}@media(max-width:680px){.today{grid-template-columns:1fr}.entry-list{flex-direction:row;overflow-x:auto}}.entry-list{display:flex;flex-direction:column;gap:8px;position:sticky;top:78px}.new-btn{width:100%;padding:10px}.entry-list-item{display:flex;align-items:center;gap:8px;text-align:left;border:0;cursor:pointer;background:var(--surface);border-radius:var(--r-md);padding:9px 11px;box-shadow:var(--shadow-sm);font-family:inherit;color:var(--ink);min-width:150px}.entry-list-item.sel{outline:2px solid var(--lavender)}.eli-mood{font-size:18px}.eli-text{display:flex;flex-direction:column;overflow:hidden}.eli-text b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.eli-text small{font-size:11px}.editor{border-radius:var(--r-lg);padding:4px}.theme-beach{background:linear-gradient(180deg,#bfe3f5,#d8eef7 36%,#f6ead0 66%,#f3e1c4)}.theme-rain{background:linear-gradient(180deg,#cdd6e8,#dfe6f1,#eef1f6)}.theme-plain{background:linear-gradient(180deg,#fdeef4,#f4ecfb)}.theme-night{background:linear-gradient(180deg,#2f2a44,#3a3357 60%,#463a63)}.theme-night .editor-date small,.theme-night .muted{color:#cdbfe0}.theme-night .entry-title,.theme-night .entry-text{color:#ece4f5}[data-theme=dark] .entry-text{color:var(--ink)}[data-theme=dark] .entry-title{color:#d9b8e8}[data-theme=dark] .entry-cap{color:var(--ink-soft)}.editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 8px;flex-wrap:wrap}.editor-date .big{font-size:30px;display:block;line-height:1;color:#4a6b86}.theme-night .editor-date .big{color:#d9b8e8}.editor-date small{font-size:12px}.theme-picker{display:flex;gap:6px;flex-wrap:wrap}.chip{border:0;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;color:#7a6f86;background:#fffc;border-radius:var(--r-pill);padding:6px 11px;box-shadow:var(--shadow-sm);transition:transform .12s var(--ease)}.chip.sel{outline:2px solid #e89bb4;transform:translateY(-1px)}.toolbar{display:flex;gap:4px;flex-wrap:wrap;padding:8px 14px}.tool{width:30px;height:30px;border:0;border-radius:9px;background:var(--surface);color:var(--ink-soft);font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm)}.tool.t0{font-weight:800}.tool.t1{font-style:italic}.tool.t2{text-decoration:underline}.tool.t4{background:linear-gradient(120deg,var(--blush),var(--babyblue))}.entry-card{margin:8px 14px 14px;padding:20px 22px}.entry-title{font-family:Caveat,cursive;font-size:34px;font-weight:700;color:#4a6b86;border:0;outline:0;background:transparent;width:100%;margin-bottom:6px}.theme-night .entry-title{color:#d9b8e8}.entry-text{font-size:15px;line-height:1.7;color:#534d5e;margin:10px 0}.entry-body{width:100%;min-height:180px;border:0;outline:0;resize:vertical;background:transparent;font-family:Quicksand,system-ui,sans-serif;font-size:15px;line-height:1.7;color:#534d5e;margin:6px 0}.entry-body::placeholder{color:var(--ink-soft);opacity:.7}.theme-night .entry-body{color:#ece4f5}[data-theme=dark] .entry-body{color:var(--ink)}.entry-photo-wrap{margin:14px 0 6px}.entry-photo{height:150px;border-radius:var(--r-md);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.entry-photo.beach{background:linear-gradient(180deg,#9ed3ef,#cfe9d6 68%,#f0dcb6)}.entry-photo.beach .sun{position:absolute;top:18px;right:26px;width:40px;height:40px;border-radius:50%;background:#ffe9a8;box-shadow:0 0 28px #ffe39a}.entry-photo.beach .sea{position:absolute;bottom:42px;left:0;right:0;height:36px;background:#7cc2e6;opacity:.6}.entry-photo.beach .sand{position:absolute;bottom:0;left:0;right:0;height:42px;background:#e9d6ad}.entry-photo.soap{background:linear-gradient(120deg,#e7dcff,#d8c7f0 60%,#c2b0e6)}.entry-cap{font-size:12.5px;font-style:italic;color:var(--ink-soft);margin:6px 2px 0}.entry-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}.mood{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600}.mood .m{border:0;background:transparent;font-size:20px;cursor:pointer;filter:grayscale(.6) opacity(.55);transition:transform .12s var(--ease),filter .12s var(--ease)}.mood .m.sel{filter:none;transform:scale(1.25)}.tags{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.tag.add{border:1px dashed #c9b6e4;background:transparent;color:#9a7fb5;cursor:pointer}.savebar{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-soft);padding:4px 18px 12px}.savebar .dot{width:8px;height:8px;border-radius:50%;background:#8fd6a8;box-shadow:0 0 0 4px #8fd6a840}.savebar .dot.saving{background:#f0c674;box-shadow:0 0 0 4px #f0c67440}.trash-btn{margin-left:auto;border:0;background:transparent;cursor:pointer;font-size:14px}.empty-state{text-align:center;padding:60px 20px}.empty-heart{font-size:52px}.empty-state h2{margin:12px 0 6px}.empty-state .btn{margin-top:18px}.cal-page{display:flex;flex-direction:column;gap:16px}.cal-head{padding:18px 20px;background:var(--rainbow)}.cal-head h2{color:#5b5566}.cal-head .muted{color:#6f6580;margin:4px 0 0}.seg{display:flex;gap:6px;margin-top:14px}.seg button{border:0;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:#6f6580;background:#fff9;border-radius:var(--r-pill);padding:7px 14px}.seg button.on{background:#fff;box-shadow:var(--shadow-sm)}.cal-grid{padding:16px}.dow{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;font-size:11px;font-weight:600;color:var(--ink-soft);text-align:center;margin-bottom:8px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{aspect-ratio:1;border-radius:var(--r-sm);background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;color:var(--ink-soft);box-shadow:var(--shadow-sm)}.day.today{outline:2px solid #e89bb4;color:var(--ink);font-weight:700}.day .dots{display:flex;gap:3px;margin-top:4px;min-height:6px}.day .dots i{width:6px;height:6px;border-radius:50%;display:block}.timeline{display:flex;flex-direction:column;gap:10px}.onthis{margin:0 0 2px;font-weight:600}.tl-item{display:flex;gap:12px;padding:12px;align-items:center}.tl-thumb{width:50px;height:50px;border-radius:var(--r-sm);flex:none;display:flex;align-items:center;justify-content:center;font-size:22px}.tl-thumb.beach{background:linear-gradient(120deg,#9ed3ef,#f0dcb6)}.tl-thumb.rain{background:linear-gradient(120deg,#cdd6e8,#e7ecf4)}.tl-thumb.plain{background:linear-gradient(120deg,var(--blush),var(--peach))}.tl-body h4{margin:0 0 2px;font-size:14.5px}.tl-body .muted{margin:0;font-size:12px}.tl-tags{margin-top:5px;display:flex;gap:5px}.frame{min-height:100%;display:flex;flex-direction:column}.topnav{display:flex;align-items:center;gap:16px;padding:14px 20px;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.nav-links{display:flex;gap:6px;margin-left:auto;margin-right:8px}.nav-links a{text-decoration:none;color:var(--ink-soft);font-weight:600;font-size:14px;padding:8px 14px;border-radius:var(--r-pill);transition:background .15s var(--ease),color .15s var(--ease)}.nav-links a:hover{color:var(--ink);background:var(--surface-2)}.nav-links a.on{color:var(--ink);background:color-mix(in srgb,var(--lavender) 40%,var(--surface));box-shadow:var(--shadow-sm)}.nav-right{display:flex;align-items:center;gap:8px}.lock-btn{border:0;cursor:pointer;font-size:15px;background:var(--surface-2);border-radius:var(--r-pill);padding:7px 10px;box-shadow:var(--shadow-sm)}.content{flex:1;width:100%;max-width:880px;margin:0 auto;padding:24px 18px 60px}.appfoot{text-align:center;font-size:12px;padding:18px;opacity:.7}.devbar{text-align:center;font-size:12px;font-weight:700;letter-spacing:.4px;color:#8a5a00;background:repeating-linear-gradient(45deg,var(--butter),var(--butter) 12px,#ffe9a8 12px,#ffe9a8 24px);padding:6px}@media(max-width:520px){.topnav{gap:10px;padding:12px 14px}.nav-links a{padding:8px 10px}}:root{--blush: #fbc8d4;--lavender: #d8c7f0;--mint: #c2e9d4;--peach: #ffd9c0;--babyblue: #c5def2;--butter: #fbefc0;--rainbow: linear-gradient(120deg, #fbc8d4, #ffd9c0, #fbefc0, #c2e9d4, #c5def2, #d8c7f0);--grad-primary: linear-gradient(120deg, #e89bb4, #b79be0);--r-sm: 12px;--r-md: 18px;--r-lg: 28px;--r-pill: 999px;--ease: cubic-bezier(.22, 1, .36, 1)}:root,[data-theme=light]{--bg: #fff8f4;--bg-tint-a: #fdeff4;--bg-tint-b: #eff5fc;--surface: #ffffff;--surface-2: #fdf6fb;--ink: #5b5566;--ink-soft: #8a8096;--line: #f1e7ee;--shadow: 0 10px 30px rgba(91, 85, 102, .14);--shadow-sm: 0 4px 14px rgba(91, 85, 102, .12)}[data-theme=dark]{--bg: #2a2433;--bg-tint-a: #322a40;--bg-tint-b: #28303f;--surface: #3a3346;--surface-2: #332c41;--ink: #ede7f2;--ink-soft: #b7acc9;--line: rgba(255, 255, 255, .08);--shadow: 0 12px 30px rgba(0, 0, 0, .35);--shadow-sm: 0 4px 14px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Quicksand,system-ui,-apple-system,sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 8% -10%,var(--bg-tint-a) 0%,transparent 60%),radial-gradient(1000px 500px at 100% 0%,var(--bg-tint-b) 0%,transparent 55%),var(--bg);-webkit-font-smoothing:antialiased;transition:background-color .3s var(--ease),color .3s var(--ease)}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}h1,h2,h3{color:var(--ink);margin:0}a{color:#a07cc0}.handwritten{font-family:Caveat,cursive}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);border:1px solid var(--line)}.btn{border:0;border-radius:var(--r-md);padding:13px 18px;font-family:inherit;font-weight:600;font-size:15px;color:#fff;cursor:pointer;background:var(--grad-primary);box-shadow:0 8px 18px #b79be066;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.btn:hover{transform:translateY(-1px);box-shadow:0 12px 22px #b79be080}.btn:active{transform:translateY(0)}.btn.ghost{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.pill{background:var(--surface);color:var(--ink-soft);border-radius:var(--r-pill);font-size:12px;font-weight:600;padding:6px 12px;box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;gap:6px}.tag{font-size:11px;font-weight:600;color:#9a7fb5;background:color-mix(in srgb,var(--lavender) 35%,var(--surface));border-radius:var(--r-pill);padding:3px 9px}.field{display:flex;align-items:center;gap:8px;background:var(--surface);border-radius:var(--r-md);padding:13px 16px;box-shadow:inset 0 0 0 2px var(--line)}.field input{border:0;outline:0;font-family:inherit;font-size:16px;width:100%;background:transparent;color:var(--ink)}.brand{font-weight:700;letter-spacing:.3px;background:var(--rainbow);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-flex;align-items:center;gap:8px}.brand .mark{-webkit-text-fill-color:initial}.muted{color:var(--ink-soft)}.center{display:flex;align-items:center;justify-content:center}
