:root{--mg-50:#f8f7f8;--mg-100:#efebef;--mg-200:#dfd8df;--mg-300:#c8bcc8;--mg-400:#ac9aac;--mg-500:#8b7b8b;--mg-600:#6e5e6e;--mg-700:#534653;--mg-800:#372f37;--mg-900:#241e24;--mg-950:#161316;--violet-rain:#694489;--violet-rose:#5e2d79;--violet-candy:#bda0cb;--violet-thistle:#d8bfd8;--zinc:#fdf8ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--mg-950);--surface:var(--mg-900);--bg2:var(--mg-800);--text:var(--mg-100);--subtle:var(--mg-200);--muted:var(--mg-400);--accent:var(--violet-candy);--accent-text:var(--violet-candy);--accent-hover:var(--violet-thistle);--on-accent:var(--mg-950);--accent-dim:#bda0cb1f;--accent-glow:#bda0cb40;--border:#bda0cb59;--card-border:var(--mg-800);--tag-border:var(--mg-800);--ghost-border:var(--mg-600);--hr:var(--mg-800);--glow:0 0 24px #bda0cb40;--danger:#ff8a80;--glow-top:#8b7b8b24;--glow-foot:#69448929;--ape-mark:var(--mg-300);--ape-face:var(--bg);--font-display:system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:var(--mg-50);--surface:var(--mg-100);--bg2:var(--mg-50);--text:var(--mg-900);--subtle:var(--mg-800);--muted:var(--mg-600);--accent:var(--violet-rain);--accent-text:var(--violet-rain);--accent-hover:var(--violet-rose);--on-accent:var(--zinc);--accent-dim:#69448914;--accent-glow:#69448940;--border:#69448966;--card-border:var(--mg-300);--tag-border:var(--mg-300);--ghost-border:var(--mg-500);--hr:var(--mg-300);--glow:0 0 24px #69448933;--danger:#b3261e;--glow-top:#ffffffe6;--glow-foot:#bda0cb38;--ape-mark:var(--mg-700)}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:var(--mg-50);--surface:var(--mg-100);--bg2:var(--mg-50);--text:var(--mg-900);--subtle:var(--mg-800);--muted:var(--mg-600);--accent:var(--violet-rain);--accent-text:var(--violet-rain);--accent-hover:var(--violet-rose);--on-accent:var(--zinc);--accent-dim:#69448914;--accent-glow:#69448940;--border:#69448966;--card-border:var(--mg-300);--tag-border:var(--mg-300);--ghost-border:var(--mg-500);--hr:var(--mg-300);--glow:0 0 24px #69448933;--danger:#b3261e;--glow-top:#ffffffe6;--glow-foot:#bda0cb38;--ape-mark:var(--mg-700)}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);margin:0}.ape-page{color:var(--text);font-family:var(--font-body);background:radial-gradient(120% 70% at 50% -10%, var(--glow-top) 0%, transparent 60%), radial-gradient(90% 60% at 50% 115%, var(--glow-foot) 0%, transparent 70%), var(--bg);background-attachment:fixed;min-height:100vh;line-height:1.6;position:relative}.ape-wrap{z-index:1;max-width:860px;margin:0 auto;padding:0 32px;position:relative}@media (width<=600px){.ape-wrap{padding:0 20px}}.ape-hero{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);margin:0 0 20px;font-size:clamp(2.4rem,6vw,4rem);font-weight:700;line-height:1.1}.ape-hero span{color:var(--accent)}.ape-lead{color:var(--subtle);max-width:560px;margin:0 0 40px;font-size:16px;line-height:1.7}.ape-btn{font-family:var(--font-body);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:12px 22px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.ape-btn--primary{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent)}.ape-btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--glow)}.ape-btn--ghost{color:var(--subtle);border:1px solid var(--ghost-border);background:0 0}.ape-btn--ghost:hover{border-color:var(--border);color:var(--accent-text)}.ape-btn:focus-visible,.ape-footer a:focus-visible,.ape-tag:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ape-pill{background:var(--accent-dim);border:1px solid var(--border);color:var(--accent-text);letter-spacing:.08em;text-transform:uppercase;border-radius:100px;align-items:center;gap:8px;padding:6px 14px;font-size:11px;display:inline-flex}.ape-pill:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 6px var(--accent);border-radius:50%;animation:2.5s infinite ape-pulse}.ape-pill--off{color:var(--muted);background:var(--bg2);border-color:var(--ghost-border)}.ape-pill--off:before{background:var(--muted);box-shadow:none;animation:none}@keyframes ape-pulse{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion:reduce){.ape-pill:before{animation:none}}.ape-label{letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);align-items:center;gap:10px;margin:0 0 24px;font-size:10px;display:flex}.ape-label:after{content:"";background:var(--border);flex:1;max-width:40px;height:1px}.ape-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.ape-card{background:var(--surface);border:1px solid var(--card-border);border-radius:8px;padding:24px;transition:border-color .2s,transform .2s}.ape-card:hover{border-color:var(--border);transform:translateY(-2px)}.ape-card h3{font-family:var(--font-display);color:var(--text);margin:0 0 8px;font-size:15px;font-weight:700}.ape-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.ape-panel{background:var(--surface);border:1px solid var(--card-border);border-radius:10px;padding:40px}@media (width<=600px){.ape-panel{padding:28px}}.ape-tags{flex-wrap:wrap;gap:8px;display:flex}.ape-tag{background:var(--bg2);border:1px solid var(--tag-border);color:var(--subtle);border-radius:4px;padding:5px 12px;font-size:12px;text-decoration:none;transition:all .2s}.ape-tag:hover{border-color:var(--border);color:var(--accent-text)}.ape-divider{background:linear-gradient(90deg, var(--hr), transparent);border:0;height:1px}.ape-footer{border-top:1px solid var(--hr);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:32px 0 48px;display:flex}.ape-footer__built{align-items:center;gap:8px;display:inline-flex}a.ape-footer__built:hover{color:var(--accent-text)}.ape-footer__mark{flex:none;width:20px;height:20px}.ape-footer__meta{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.ape-footer__copy,.ape-footer__meta a,.ape-footer__built{color:var(--muted);font-size:12px;text-decoration:none;transition:color .15s}.ape-footer__meta a:hover{color:var(--accent-text)}a{color:var(--accent-text);text-underline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 0;display:flex}.app-brand{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-size:20px;font-weight:700;text-decoration:none;display:inline-flex}.app-brand .ape-mark{flex:none;width:30px;height:30px}.app-nav{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.app-nav a,.app-nav button{font-family:var(--font-body);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 10px;font-size:14px;text-decoration:none;transition:color .15s,border-color .15s}.app-nav a:hover,.app-nav button:hover{color:var(--accent-text)}.app-nav a[data-status=active]{color:var(--accent-text);border-color:var(--border)}.theme-toggle svg{display:block}main{min-height:60vh;padding:32px 0 64px}.page-head{margin-bottom:40px}.ape-hero{font-size:clamp(2.2rem,6vw,3.4rem)}.ape-lead{margin-bottom:24px}.field{gap:6px;display:grid}.field>span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.field small{color:var(--muted);font-size:11px}.input,.select,.textarea{width:100%;font:14px/1.5 var(--font-body);color:var(--text);background:var(--bg2);border:1px solid var(--ghost-border);border-radius:6px;padding:10px 12px;transition:border-color .15s}.input:hover,.select:hover,.textarea:hover{border-color:var(--border)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:none}@media (pointer:coarse){.input,.select,.textarea{font-size:16px}}.textarea{resize:vertical;min-height:72px}.form{gap:16px;display:grid}.form-narrow{max-width:420px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ape-btn:disabled{opacity:.55;cursor:not-allowed;filter:none;box-shadow:none}.ape-btn--sm{padding:7px 12px;font-size:13px}.ape-btn--danger{color:var(--danger);border:1px solid var(--ghost-border);background:0 0}.ape-btn--danger:hover{border-color:var(--danger)}.icon-btn{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;transition:color .15s,border-color .15s;display:inline-grid}.icon-btn:hover{color:var(--accent-text);border-color:var(--border)}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.checkbox{color:var(--subtle);cursor:pointer;align-items:center;gap:10px;font-size:14px;display:inline-flex}.checkbox input{accent-color:var(--accent);width:16px;height:16px}.notice{border:1px solid var(--ghost-border);background:var(--bg2);color:var(--subtle);border-radius:6px;padding:10px 14px;font-size:13px;line-height:1.7}.notice.error{border-color:var(--danger);color:var(--danger)}.notice.ok{border-color:var(--border);color:var(--accent-text)}.muted{color:var(--muted)}.small{font-size:12px}.week-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.progress{gap:8px;max-width:420px;margin:0 0 40px;display:grid}.progress-bar{background:var(--hr);border-radius:100px;height:4px;overflow:hidden}.progress-bar>div{background:var(--accent);height:100%;transition:width .3s}.progress-text{color:var(--subtle);font-size:12px}.categories{gap:16px;display:grid}.category{background:var(--surface);border:1px solid var(--card-border);border-radius:8px;padding:24px;transition:border-color .2s}.category.filled{border-color:var(--border)}.category-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.category-head h2{font-family:var(--font-display);color:var(--text);margin:0;font-size:18px;font-weight:700}.category-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.category-desc{color:var(--muted);margin:0 0 16px;font-size:13px}.entries{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.entry{background:var(--bg2);border:1px solid var(--tag-border);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px;padding:12px 14px;display:grid}.entry-title{color:var(--text);overflow-wrap:anywhere;font-size:14px}.entry-title a{color:var(--text);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.entry-title a:hover{color:var(--accent-text)}.entry-notes{color:var(--subtle);white-space:pre-wrap;overflow-wrap:anywhere;grid-column:1/-1;margin:0;font-size:13px;line-height:1.7}.entry-meta{color:var(--muted);align-items:center;gap:10px;margin-top:4px;font-size:11px;display:flex}.entry-actions{gap:2px;display:flex}.rating{gap:3px;display:inline-flex}.rating span{background:var(--ghost-border);border-radius:50%;width:6px;height:6px}.rating span.on{background:var(--accent)}.rating-input{gap:4px;display:inline-flex}.rating-input button{border:1px solid var(--ghost-border);width:28px;height:28px;color:var(--muted);font:12px var(--font-body);cursor:pointer;background:0 0;border-radius:6px}.rating-input button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.add-entry{gap:10px;display:grid}.add-entry .row{flex-wrap:nowrap}.add-entry .row .input{flex:1;min-width:0}.more-toggle{color:var(--muted);font:11px var(--font-body);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0}.more-toggle:hover{color:var(--accent-text)}.manage-list{gap:8px;margin:0 0 32px;padding:0;list-style:none;display:grid}.manage-item{background:var(--surface);border:1px solid var(--card-border);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;display:grid}.manage-item.archived{opacity:.6}.manage-item h3{font-family:var(--font-display);color:var(--text);margin:0;font-size:15px}.manage-item p{color:var(--muted);margin:2px 0 0;font-size:12px}.manage-actions{align-items:center;gap:2px;display:flex}.manage-edit{grid-column:1/-1}.table-wrap{border:1px solid var(--card-border);background:var(--surface);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--hr);text-align:center;white-space:nowrap;padding:10px 12px}th{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:400}th:first-child,td:first-child{text-align:left}tr:last-child td{border-bottom:0}td.zero{color:var(--muted);opacity:.5}td.hit{color:var(--accent-text)}td a{color:var(--text);text-decoration:none}td a:hover{color:var(--accent-text)}.section{padding:40px 0}.danger-zone{border:1px solid var(--ghost-border);border-radius:10px;gap:12px;padding:24px;display:grid}.danger-zone h2{font-family:var(--font-display);color:var(--text);margin:0;font-size:18px}.loading{color:var(--muted);padding:24px 0;font-size:12px}@media (width<=600px){.category{padding:18px}.entry{padding:10px 12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.profile-menu{position:relative}.profile-menu>summary{cursor:pointer;border-radius:999px;list-style:none}.profile-menu>summary::-webkit-details-marker{display:none}.profile-menu>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.profile-menu__avatar{background:var(--accent-dim);border:1px solid var(--border);width:32px;height:32px;color:var(--accent-text);font:600 14px/1 var(--font-body);border-radius:999px;place-items:center;display:grid}.profile-menu>summary:hover .profile-menu__avatar{box-shadow:var(--glow)}.profile-menu__panel{z-index:20;background:var(--surface);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;min-width:240px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000059}.profile-menu__who{color:var(--muted);border-bottom:1px solid var(--hr);margin:0 0 4px;padding:8px 10px 10px;font-size:12px}.profile-menu__who strong{color:var(--text);overflow-wrap:anywhere;margin-top:2px;font-size:14px;font-weight:600;display:block}.app-nav .profile-menu__panel a,.app-nav .profile-menu__panel button,.profile-menu__panel a,.profile-menu__panel button{text-align:left;width:100%;font:14px var(--font-body);color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;text-decoration:none;display:block}.profile-menu__panel a:hover,.profile-menu__panel button:hover{background:var(--accent-dim);color:var(--accent-text)}.app-brand .ape-mark{width:30px;height:30px}.link-btn{font:inherit;color:var(--accent-text);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.link-btn:hover{color:var(--accent-hover)}.danger-text{color:var(--danger)}.tabs{border-bottom:1px solid var(--hr);gap:4px;margin:0 0 28px;display:flex}.tab{font:500 15px var(--font-body);color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px}.tab:hover{color:var(--accent-text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.day-nav,.month-nav{justify-content:space-between;align-items:center;gap:16px;display:flex}.day-nav>div{text-align:center;flex:1}.day-title{margin:4px 0 0;font-size:clamp(26px,5vw,40px)}.month-nav h2{margin:0;font-size:18px}.prompt{border-left:3px solid var(--accent);background:var(--accent-dim);color:var(--subtle);border-radius:0 10px 10px 0;margin:24px 0 0;padding:14px 16px;font-style:italic}.gratitude-list{counter-reset:g;gap:14px;margin:24px 0 0;padding:0;list-style:none;display:grid}.gratitude-item{counter-increment:g;gap:6px;padding-left:36px;display:grid;position:relative}.gratitude-item:before{content:counter(g);width:24px;height:24px;font:600 12px var(--font-body);color:var(--accent-text);border:1px solid var(--border);border-radius:999px;place-items:center;display:grid;position:absolute;top:10px;left:0}.gratitude-item .field{margin:0}.gratitude-item .link-btn{justify-self:start}.save-status{min-height:1.5em;margin-top:12px}.streaks{grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 32px;display:grid}.streak{border:1px solid var(--card-border);background:var(--surface);border-radius:12px;flex-direction:column;gap:2px;padding:16px;display:flex}.streak strong{font:700 28px/1.1 var(--font-display);color:var(--accent-text)}.month-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:16px;display:grid}.month-weekday{text-align:center;color:var(--muted);padding-bottom:4px;font-size:12px}.month-day{aspect-ratio:1;border:1px solid var(--card-border);background:var(--surface);color:var(--subtle);font:500 14px var(--font-body);cursor:pointer;border-radius:10px}.month-day:hover:not(:disabled){border-color:var(--border);color:var(--accent-text)}.month-day.filled{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}.month-day.is-today{outline:2px solid var(--accent);outline-offset:2px}.month-day:disabled{opacity:.35;cursor:default}.history{gap:12px;margin:20px 0 0;padding:0;list-style:none;display:grid}.history-day{padding:16px 18px}.history-date{font-weight:600;text-decoration:none}.history-items{gap:4px;margin:10px 0 0;padding-left:18px;display:grid}@media (width<=480px){.streaks{gap:8px}.streak{padding:12px}.streak strong{font-size:22px}.month-grid{gap:4px}}.month-nav,.month-grid{max-width:460px;margin-inline:auto}.month-day{font-size:13px}
