:root{--bg: #faf7f2;--card: #ffffff;--text: #4a4540;--text-soft: #8d857c;--green: #5fae8c;--yellow: #d9a93f;--orange: #dd8a5b;--line: #efe9e0;--line-strong: #d8d0c4;--accent: #5fae8c;--accent-soft: #e7f3ee;--radius: 20px;--shadow: 0 2px 10px rgba(120, 105, 85, .08)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,Noto Sans JP,sans-serif;font-size:17px;line-height:1.6}.app{max-width:480px;margin:0 auto;padding:16px 16px 48px;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(48px + env(safe-area-inset-bottom))}.header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.app-title{font-size:20px;font-weight:700;margin:0}.link-button{border:none;background:var(--accent-soft);color:var(--accent);font-size:15px;font-weight:600;padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap}.link-button.small{font-size:13px;padding:4px 12px}.date-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.nav-button{flex:none;width:48px;height:48px;border:none;border-radius:16px;background:var(--card);box-shadow:var(--shadow);color:var(--text-soft);font-size:26px;line-height:1;cursor:pointer}.nav-button:active{background:var(--accent-soft)}.date-nav-center{text-align:center;min-height:52px}.date-nav-date{font-size:19px;font-weight:700}.date-nav-today{font-size:13px;color:var(--accent);font-weight:600}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}.card-title{font-size:15px;font-weight:600;color:var(--text-soft);margin:0 0 12px}.past-note{color:var(--text-soft);font-size:15px;text-align:center}.prompt{text-align:center;margin:0 0 8px;color:var(--text-soft);font-size:16px}.battery-gauge{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}.battery-gauge-number{font-size:64px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.battery-gauge-unit{font-size:.45em;font-weight:600;margin-left:2px}.battery-gauge-icon{width:110px;height:auto}.slider-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.adjust-button{flex:none;width:48px;height:48px;border:none;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:24px;font-weight:700;line-height:1;cursor:pointer}.adjust-button:active{background:var(--green);color:#fff}.slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:14px;border-radius:999px;background:linear-gradient(to right,var(--orange),var(--yellow),var(--green));opacity:.9;outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:36px;border-radius:50%;background:#fff;border:3px solid var(--accent);box-shadow:0 2px 6px #00000026;cursor:pointer}.slider::-moz-range-thumb{width:36px;height:36px;border-radius:50%;background:#fff;border:3px solid var(--accent);box-shadow:0 2px 6px #00000026;cursor:pointer}.memo-input,.note-input{width:100%;border:2px solid var(--line);border-radius:14px;padding:12px 14px;font-size:16px;font-family:inherit;color:var(--text);background:var(--bg);margin-bottom:14px}.memo-input:focus,.note-input:focus{outline:none;border-color:var(--accent);background:#fff}.note-input{resize:none;margin-bottom:4px}.note-hint{margin:0;font-size:13px;color:var(--text-soft);text-align:right}.save-button{width:100%;border:none;border-radius:16px;background:var(--green);color:#fff;font-size:19px;font-weight:700;font-family:inherit;padding:16px;cursor:pointer;transition:transform .05s}.save-button:active{transform:scale(.98)}.chart{width:100%;height:auto;display:block}.chart-label{font-size:12px;fill:var(--text-soft)}.chart-label.today{fill:var(--accent);font-weight:700}.chart-value{font-size:12px;font-weight:600;fill:var(--text)}.chart-empty,.list-empty{text-align:center;color:var(--text-soft);font-size:15px;padding:20px 0}.record-list{list-style:none;margin:0;padding:0}.record-row{display:flex;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid var(--line)}.record-row:last-child{border-bottom:none}.record-time{flex:none;font-variant-numeric:tabular-nums;color:var(--text-soft);font-size:15px}.record-level{flex:none;width:56px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}.record-memo{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.record-delete{flex:none;border:none;background:var(--bg);color:var(--text-soft);width:36px;height:36px;border-radius:50%;font-size:14px;cursor:pointer}.record-delete.confirming{width:auto;padding:0 12px;border-radius:999px;background:var(--orange);color:#fff;font-weight:600;white-space:nowrap}.week-average-card{text-align:center}.week-average{font-size:56px;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums;line-height:1.2}.day-list{list-style:none;margin:0;padding:0}.day-row{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;font-family:inherit;font-size:16px;color:var(--text);padding:13px 2px;border-bottom:1px solid var(--line);cursor:pointer;text-align:left}.day-list li:last-child .day-row{border-bottom:none}.day-row-date{flex:none;width:76px;font-weight:600}.day-row-date.today{color:var(--accent)}.day-row-stats{flex:1;display:flex;align-items:baseline;gap:10px;min-width:0}.day-row-stats.none{color:var(--text-soft);font-size:14px}.day-row-average{font-weight:700}.day-row-minmax{font-size:13px;color:var(--text-soft);white-space:nowrap}.day-row-arrow{flex:none;color:var(--line-strong);font-size:20px}.toast{position:fixed;left:50%;bottom:calc(32px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--text);color:#fff;font-size:15px;padding:10px 22px;border-radius:999px;box-shadow:var(--shadow);animation:toast-in .2s ease-out;z-index:10}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}
