@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Thai:wght@300;400;500;600;700&display=swap");:root{--bg:#fdf8f2;--card:#ffffff;--ink:#3d3229;--muted:#9a8c7d;--accent:#e8954f;--accent-dark:#d97f35;--accent-soft:#fbeadb;--green:#7fb069;--border:#f0e6d9;--shadow:0 2px 12px rgba(61,50,41,0.07);--radius:16px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:IBM Plex Sans Thai,system-ui,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}a{color:inherit;text-decoration:none}.container{max-width:560px;margin:0 auto;padding:24px 20px 100px}.header{text-align:center;margin-bottom:24px}.logo{font-size:28px;font-weight:700;letter-spacing:-.5px}.logo span{color:var(--accent)}.tagline{color:var(--muted);font-size:14px;margin-top:2px}.nav{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--border);display:flex;justify-content:center;gap:8px;padding:8px 16px calc(8px + env(safe-area-inset-bottom));z-index:10}.nav a{flex:1 1;max-width:120px;text-align:center;padding:8px 4px;border-radius:12px;font-size:13px;color:var(--muted);transition:all .15s}.nav a .icon{display:block;font-size:20px;margin-bottom:2px}.nav a.active{color:var(--accent-dark);background:var(--accent-soft);font-weight:600}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}.card-title{font-size:16px;font-weight:600;margin-bottom:12px}.date-label{text-align:center;color:var(--muted);font-size:14px;margin-bottom:16px}.item-row{gap:10px;margin-bottom:10px}.item-num,.item-row{display:flex;align-items:center}.item-num{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark);font-weight:600;font-size:14px;justify-content:center;flex-shrink:0}.item-row input{flex:1 1;border:1.5px solid var(--border);border-radius:10px;padding:10px 14px;font-family:inherit;font-size:15px;background:var(--bg);color:var(--ink);transition:border-color .15s}.item-row input:focus{outline:none;border-color:var(--accent);background:#fff}.mood-row{display:flex;justify-content:space-between;gap:6px}.mood-btn{flex:1 1;border:1.5px solid var(--border);background:var(--bg);border-radius:12px;padding:10px 4px;cursor:pointer;font-family:inherit;text-align:center;transition:all .15s}.mood-btn .emoji{font-size:24px;display:block}.mood-btn .label{font-size:11px;color:var(--muted);margin-top:4px;display:block}.mood-btn.selected{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.05)}.btn{width:100%;border:none;border-radius:12px;padding:14px;font-family:inherit;font-size:16px;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;transition:background .15s}.btn:hover{background:var(--accent-dark)}.btn:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}.btn-ghost{background:transparent;color:var(--accent-dark);border:1.5px solid var(--accent)}.btn-ghost:hover{background:var(--accent-soft)}.streak-banner{display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#fff3e4,#fbeadb);border-radius:var(--radius);padding:14px;margin-bottom:16px;font-weight:600}.streak-banner .fire{font-size:24px}.saved-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:15px;line-height:1.5}.saved-item:last-child{border-bottom:none}.success-msg{text-align:center;color:var(--green);font-weight:600;padding:8px 0}.error-msg{text-align:center;color:#c0392b;font-size:14px;margin:8px 0}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-header button{border:none;background:var(--accent-soft);color:var(--accent-dark);width:36px;height:36px;border-radius:10px;font-size:18px;cursor:pointer}.cal-month{font-weight:600;font-size:16px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-dow{text-align:center;font-size:12px;color:var(--muted);padding:4px 0}.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;font-size:13px;cursor:default;border:1.5px solid transparent}.cal-day.has-entry{background:var(--accent-soft);cursor:pointer}.cal-day.has-entry:hover,.cal-day.today{border-color:var(--accent)}.cal-day.today{font-weight:700}.cal-day .mood{font-size:14px;line-height:1}.cal-day.selected{background:var(--accent);color:#fff}.stat-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:16px}.stat-box{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 8px;text-align:center}.stat-box .num{font-size:26px;font-weight:700;color:var(--accent-dark)}.stat-box .label{font-size:12px;color:var(--muted);margin-top:2px}.bar-chart{align-items:flex-end;height:120px;padding-top:8px}.bar-chart,.bar-col{display:flex;gap:4px}.bar-col{flex:1 1;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.bar{width:100%;max-width:28px;border-radius:6px 6px 0 0;background:var(--accent);min-height:4px}.bar-col .day{font-size:10px;color:var(--muted)}.mood-dist-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.mood-dist-row .emoji{font-size:18px;width:26px}.mood-dist-track{flex:1 1;height:10px;background:var(--bg);border-radius:5px;overflow:hidden}.mood-dist-fill{height:100%;background:var(--accent);border-radius:5px}.mood-dist-row .count{font-size:13px;color:var(--muted);width:24px;text-align:right}.empty-state{text-align:center;color:var(--muted);padding:32px 16px;font-size:14px;line-height:1.7}.empty-state .big{font-size:40px;display:block;margin-bottom:8px}.memory-quote{font-size:15px;line-height:1.7;color:var(--ink)}.memory-date{font-size:13px;color:var(--muted);margin-top:8px}