@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap";:root{color-scheme:light;font-family:Outfit,system-ui,-apple-system,sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--viewport-safe-bottom: 0px;--app-height: 100svh;--bottom-nav-height: 72px;--bg: #f8f6f3;--bg-card: #ffffff;--bg-inset: #f0eeeb;--ink: #1c1917;--ink-secondary: #78716c;--ink-muted: #a8a29e;--accent: #f25d9c;--accent-hover: #e8508e;--accent-soft: rgba(242, 93, 156, .1);--accent-text: #c9427a;--border: rgba(28, 25, 23, .07);--border-strong: rgba(28, 25, 23, .14);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .08);--mood-1: #cdc8c3;--mood-2: #e4c8d8;--mood-3: #f0a4c4;--mood-4: #f272aa;--mood-5: #fe5d9f;--shadow-sm: 0 1px 3px rgba(28, 25, 23, .04), 0 1px 2px rgba(28, 25, 23, .03);--shadow-md: 0 4px 12px rgba(28, 25, 23, .06), 0 2px 4px rgba(28, 25, 23, .04);--shadow-lg: 0 12px 32px rgba(28, 25, 23, .08);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-full: 999px;--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg: #13091f;--bg-card: #1e1230;--bg-inset: #110a1c;--ink: #ede8f4;--ink-secondary: #a898b8;--ink-muted: #6b5a7e;--accent: #ff6bb5;--accent-hover: #ff85c5;--accent-soft: rgba(255, 107, 181, .18);--accent-text: #ff6bb5;--border: rgba(200, 160, 255, .1);--border-strong: rgba(200, 160, 255, .2);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .1);--shadow-sm: 0 1px 3px rgba(20, 10, 40, .3), 0 1px 2px rgba(100, 60, 180, .06);--shadow-md: 0 4px 12px rgba(20, 10, 40, .35), 0 2px 8px rgba(100, 60, 180, .1);--shadow-lg: 0 12px 32px rgba(20, 10, 40, .45), 0 4px 16px rgba(100, 60, 180, .12);--glass-bg: rgba(30, 18, 48, .65);--glass-blur: 16px;--glass-highlight: inset 0 1px 0 0 rgba(255, 255, 255, .06);--glass-glow: 0 4px 24px rgba(100, 60, 180, .12);--glow-accent: 0 0 20px rgba(255, 107, 181, .35);--glow-accent-strong: 0 0 30px rgba(255, 107, 181, .5)}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{min-height:100%}#app{min-height:100vh;min-height:100svh;min-height:var(--app-height)}.app-shell{position:relative;min-height:100vh;min-height:100svh;min-height:var(--app-height);padding-top:var(--safe-top);padding-bottom:calc(var(--bottom-nav-height) + max(var(--safe-bottom),var(--viewport-safe-bottom)));background:var(--bg)}.main{padding:16px 16px 24px;position:relative;z-index:1}.storage-banner{position:relative;z-index:2;margin:8px 16px 0;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;border:1px solid var(--border);background:var(--bg-card)}.storage-banner.warning{color:#fff;border-color:var(--danger);background:var(--danger)}.storage-banner.info{color:var(--accent-text);border-color:var(--accent-soft);background:var(--accent-soft)}.storage-banner .with-icon{display:flex;align-items:flex-start}.view{display:grid;gap:16px;animation:viewEnter var(--duration-slow) var(--ease-out)}.view-header h1{margin:4px 0 2px;font-size:24px;font-weight:700}.label{margin:0;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary)}.back-link{text-decoration:none;color:var(--accent-text);font-weight:600;font-size:13px;transition:opacity var(--duration-fast) ease}.back-link:hover{opacity:.7}.ui-icon{display:inline-block;flex-shrink:0;color:var(--ink-secondary);stroke-width:2}.ui-icon-sm{width:14px;height:14px}.ui-icon-md{width:16px;height:16px}.ui-icon-lg{width:18px;height:18px}.with-icon{display:inline-flex;align-items:center;gap:6px}.with-icon-center{display:inline-flex;align-items:center;justify-content:center;gap:6px}.status{display:inline-flex;align-items:center;gap:6px;margin:4px 0 0;font-size:13px;color:var(--ink-muted)}.status.done{color:var(--accent-text)}.status .ui-icon{color:currentColor}.card{background:var(--bg-card);border-radius:var(--radius-md);padding:16px;border:1px solid var(--border)}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.card h2{margin:0 0 8px;font-size:17px;font-weight:600}.journal-card{background:var(--bg-card);border-radius:var(--radius-md);padding:20px;border:1px solid var(--border);border-left:4px solid var(--mood-color, var(--accent));display:grid;gap:12px}.journal-mood{display:flex;align-items:center;gap:10px}.mood-dot-lg{width:20px;height:20px;border-radius:50%;background:var(--mood-color, var(--accent))}.mood-name-lg{font-size:18px;font-weight:800;letter-spacing:.02em}.journal-note{margin:0;font-size:14px;color:var(--ink-secondary);line-height:1.5}.mood-list{display:grid;gap:8px}.mood-option{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 14px;border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--bg-card);cursor:pointer;font-family:inherit;font-size:14px;color:var(--ink);transition:border-color var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.mood-option:active{transform:scale(.98)}.mood-option .mood-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0}.mood-option .mood-name{font-weight:800;letter-spacing:.02em}.mood-option.selected{border-color:var(--chip);background:color-mix(in srgb,var(--chip) 10%,var(--bg-card))}.note-section{display:grid;gap:12px}textarea,.input{width:100%;border-radius:var(--radius-sm);border:1px solid var(--border);padding:10px 12px;font-family:inherit;font-size:14px;resize:none;background:var(--bg-inset);color:var(--ink);transition:border-color var(--duration-fast) ease}textarea:focus,.input:focus{outline:none;border-color:var(--accent)}textarea:disabled{background:var(--bg-inset);color:var(--ink-muted)}.today-note{min-height:80px}.action-row{display:flex;gap:8px;align-items:center}.button-row{display:flex;gap:8px;flex-wrap:wrap}button{font-family:inherit;font-size:14px}.btn-primary{border:none;background:var(--accent);color:#fff;padding:10px 20px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:background var(--duration-fast) ease,transform var(--duration-fast) var(--ease-out)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary:disabled:hover{background:var(--accent)}.btn-primary.is-pressed{transform:scale(.97)}.btn-block{width:100%}.btn-ghost{border:1px solid var(--border);background:transparent;color:var(--ink);padding:10px 16px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:background var(--duration-fast) ease}.btn-ghost:hover{background:var(--accent-soft)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-danger{border:none;background:var(--danger);color:#fff;padding:10px 16px;border-radius:var(--radius-md);font-weight:600;cursor:pointer}.icon-only{min-width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:transparent;border-radius:var(--radius-sm);cursor:pointer;color:var(--ink);transition:background var(--duration-fast) ease}.icon-only:hover{background:var(--accent-soft)}.pill{display:inline-block;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;color:#fff;background:var(--accent)}.hint{margin:6px 0 10px;font-size:13px;color:var(--ink-muted)}.meta{font-size:12px;color:var(--ink-muted)}.note{margin:0;font-size:14px;line-height:1.5}.notice{margin-top:8px;font-size:12px;color:var(--accent-text)}.month-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.month-nav h2{margin:0;font-size:17px;font-weight:600}.calendar{display:grid;gap:6px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);padding-bottom:4px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-cell{aspect-ratio:1;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;cursor:pointer;transition:border-color var(--duration-fast) ease,transform var(--duration-fast) var(--ease-out)}.calendar-cell:active{transform:scale(.95)}.calendar-cell.is-outside{opacity:.3}.calendar-cell.has-mood{background:color-mix(in srgb,var(--cell-mood) 30%,var(--bg-card));border-color:color-mix(in srgb,var(--cell-mood) 20%,var(--border))}.calendar-cell.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.stats-grid{display:grid;gap:16px}.stat{display:flex;flex-direction:column;gap:4px}.stat.wide{grid-column:1 / -1}.stat-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.stat-value{font-size:28px;font-weight:700}.sparkline{width:100%;height:56px}.field{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:16px}.field select{border-radius:var(--radius-sm);border:1px solid var(--border);padding:6px 10px;font-family:inherit;font-size:14px;background:var(--bg-inset);color:var(--ink)}.field input[type=time]{border-radius:var(--radius-sm);border:1px solid var(--border);padding:6px 10px;font-family:inherit;background:var(--bg-inset);color:var(--ink)}.toggle{display:flex;align-items:center;gap:12px;margin-top:12px}.version-footer{text-align:center;padding:24px 0 8px;font-size:12px;color:var(--ink-muted)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg-card);border-top:1px solid var(--border);padding:6px 8px calc(6px + max(var(--safe-bottom),var(--viewport-safe-bottom)));z-index:3}.nav-link{text-decoration:none;color:var(--ink-muted);font-size:10px;font-weight:500;letter-spacing:.02em;text-align:center;padding:6px 4px 4px;border-radius:var(--radius-sm);transition:color var(--duration-fast) ease}.nav-link-inner{display:flex;flex-direction:column;align-items:center;gap:2px}.nav-link .ui-icon{color:var(--ink-muted)}.nav-link.active,.nav-link.active .ui-icon{color:var(--accent)}.toast{position:fixed;left:50%;bottom:calc(80px + max(var(--safe-bottom),var(--viewport-safe-bottom)));transform:translate(-50%);background:var(--accent);color:#fff;padding:10px 20px;border-radius:var(--radius-full);box-shadow:var(--shadow-md);z-index:4;font-size:14px;font-weight:600;white-space:nowrap}.welcome-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;z-index:10;gap:16px;text-align:center}.welcome-label{margin:0;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-text)}.welcome-title{margin:0;font-size:28px;font-weight:700}.welcome-screen .input{max-width:280px;text-align:center;font-size:16px}.welcome-screen .btn-primary{max-width:280px;width:100%}.confirm-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;padding:0;z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-card{width:100%;max-width:480px;background:var(--bg-card);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:24px 20px calc(24px + max(var(--safe-bottom),var(--viewport-safe-bottom)));display:grid;gap:12px}.confirm-title{color:var(--ink)}.confirm-title .ui-icon{color:var(--danger)}.confirm-title h2{margin:0;font-size:18px;font-weight:600}.confirm-message{margin:0;font-size:14px;color:var(--ink-secondary)}.confirm-modal.install-prompt{z-index:11}.install-prompt-icon{color:var(--accent)}.install-steps{margin:0;padding-left:20px;font-size:14px;color:var(--ink-secondary);display:grid;gap:4px}[data-theme=dark] .app-shell{background-image:radial-gradient(ellipse at 50% 0%,rgba(139,92,246,.08) 0%,transparent 50%)}[data-theme=dark] .card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-highlight),var(--glass-glow)}[data-theme=dark] .journal-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-highlight),var(--glass-glow),-4px 0 16px color-mix(in srgb,var(--mood-color, var(--accent)) 25%,transparent)}[data-theme=dark] .storage-banner{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}[data-theme=dark] .btn-primary{box-shadow:var(--glow-accent)}[data-theme=dark] .btn-primary:hover{box-shadow:var(--glow-accent-strong)}[data-theme=dark] .mood-option.selected{box-shadow:0 0 16px color-mix(in srgb,var(--chip) 35%,transparent)}[data-theme=dark] .pill{box-shadow:0 0 12px #ff6bb54d}[data-theme=dark] .calendar-cell.has-mood{background:color-mix(in srgb,var(--cell-mood) 40%,var(--bg-card))}[data-theme=dark] .calendar-cell.selected{box-shadow:0 0 0 2px var(--accent-soft),var(--glow-accent)}[data-theme=dark] .bottom-nav{background:#13091fbf;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top-color:#c8a0ff14}[data-theme=dark] .nav-link.active{filter:drop-shadow(0 0 8px rgba(255,107,181,.4))}[data-theme=dark] .toast{box-shadow:0 0 24px #ff6bb566}[data-theme=dark] textarea:focus,[data-theme=dark] .input:focus{box-shadow:0 0 0 2px var(--accent-soft),0 0 12px #ff6bb526}[data-theme=dark] .welcome-screen{background:linear-gradient(160deg,#1a0e2e,#13091f,#1a0520)}[data-theme=dark] .confirm-modal{background:#0a051499;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-theme=dark] .confirm-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-highlight),var(--glass-glow)}.fade-enter-active,.fade-leave-active{transition:opacity var(--duration-normal) ease}.fade-enter-from,.fade-leave-to{opacity:0}.toast-enter-active,.toast-leave-active{transition:opacity var(--duration-slow) ease,transform var(--duration-slow) ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%) translateY(8px)}.slide-up-enter-active,.slide-up-leave-active{transition:opacity var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out),max-height var(--duration-normal) var(--ease-out)}.slide-up-enter-from,.slide-up-leave-to{opacity:0;transform:translateY(8px)}.modal-enter-active,.modal-leave-active{transition:opacity var(--duration-normal) ease}.modal-enter-active .confirm-card{transition:transform var(--duration-slow) var(--ease-out)}.modal-leave-active .confirm-card{transition:transform var(--duration-normal) ease}.modal-enter-from{opacity:0}.modal-enter-from .confirm-card{transform:translateY(100%)}.modal-leave-to{opacity:0}.modal-leave-to .confirm-card{transform:translateY(100%)}@keyframes viewEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}button .ui-icon,.storage-banner .ui-icon{color:currentColor}@media (min-width: 720px){.main{max-width:520px;margin:0 auto}.mood-list,.stats-grid{grid-template-columns:repeat(2,1fr)}.confirm-modal{align-items:center}.confirm-card{border-radius:var(--radius-lg);padding:24px;max-width:400px}}
