:root{--bg: #faf9f6;--card: #ffffff;--text: #333333;--muted: #999999;--border: #e4e1da;--accent: #5b7a5b;--accent-soft: #eef2ee;--warn-bg: #fdf6e0;--warn-border: #e6d9a8}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Hiragino Sans,Yu Gothic,Noto Sans JP,system-ui,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}.app{max-width:760px;margin:0 auto;padding:.5rem .75rem calc(2rem + env(safe-area-inset-bottom))}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;padding:.5rem .25rem .25rem}.header-btn,.header-right .icon-btn,.header-right .sync-badge{font-size:.9rem;padding:.45rem .7rem;border-radius:8px;min-height:2.6rem;display:inline-flex;align-items:center;justify-content:center}.current-date{font-size:1.25rem;font-weight:700;margin:0;color:var(--accent)}.header-right{display:flex;align-items:center;gap:.35rem}.sync-badge{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:999px;font-size:.72rem;padding:.2rem .6rem;cursor:pointer;white-space:nowrap}.sync-badge.state-idle{color:var(--accent);border-color:var(--accent-soft)}.sync-badge.state-error{color:#a05050;border-color:#e0c0c0}.sync-badge.state-syncing{color:var(--accent)}.date-nav{display:flex;gap:.4rem;padding:.4rem .25rem .75rem;position:sticky;top:0;background:var(--bg);z-index:5}.date-nav button,.cal-btn{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;padding:.45rem .8rem;font-size:.9rem;cursor:pointer}.date-nav .today-btn{color:var(--accent);font-weight:700}.cal-btn{position:relative;display:inline-flex;align-items:center}.cal-btn input[type=date]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer}.entries{display:flex;flex-direction:column;gap:.9rem}.entry-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.7rem .9rem .9rem}.entry-card.top-year{border-color:var(--accent);border-width:1.5px}.entry-card.invalid-year{opacity:.6}.entry-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.entry-date{font-size:1rem;font-weight:700;margin:0}.entry-date.muted{color:var(--muted);font-weight:400;font-size:.9rem}.entry-actions{display:flex;gap:.3rem;flex-shrink:0}.icon-btn{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:6px;font-size:.78rem;padding:.2rem .55rem;cursor:pointer}.icon-btn:hover{color:var(--accent);border-color:var(--accent)}.entry-body{cursor:text;margin-top:.4rem}.block{white-space:pre-wrap;word-break:break-word;padding:.45rem .1rem}.block+.block{border-top:1px solid var(--border);margin-top:.15rem}.entry-empty{color:var(--muted);padding:.6rem .1rem;cursor:text}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;z-index:40;background:var(--bg);display:flex;flex-direction:column;gap:.5rem;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom))}.editor-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-shrink:0}.editor-textarea{flex:1;min-height:0;width:100%;border:1px solid var(--accent);border-radius:8px;padding:.6rem;font:inherit;line-height:1.7;color:var(--text);background:var(--card);resize:none;outline:none}.done-btn{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.done-btn:hover{color:#fff}.fab{position:fixed;left:1.1rem;bottom:calc(1.1rem + env(safe-area-inset-bottom));z-index:30;background:var(--accent);color:#fff;border:none;border-radius:999px;padding:.85rem 1.3rem;font:inherit;font-size:1rem;font-weight:700;box-shadow:0 3px 12px #00000038;cursor:pointer}.fab:active{transform:scale(.97)}.merged-note{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:8px;padding:.5rem .7rem;margin-top:.4rem;font-size:.85rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;z-index:50;overflow-y:auto}.dialog{background:var(--card);border-radius:12px;padding:1rem 1.2rem 1.2rem;max-width:480px;width:100%}.dialog-header{display:flex;align-items:center;justify-content:space-between}.dialog h2{margin:0;font-size:1.1rem}.dialog h3{font-size:.95rem;margin:1rem 0 .3rem}.hint{font-size:.8rem;color:var(--muted);margin:.3rem 0}.field{display:block;margin:.5rem 0}.field span{display:block;font-size:.8rem;color:var(--muted)}.field input{width:100%;border:1px solid var(--border);border-radius:8px;padding:.5rem;font-size:.9rem}.dialog-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}.dialog-actions button{border:1px solid var(--border);background:var(--card);border-radius:8px;padding:.45rem .8rem;cursor:pointer;font-size:.85rem}.dialog-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.dialog-actions button:disabled{opacity:.5;cursor:default}.icon-btn.active{color:var(--accent);border-color:var(--accent)}.search-view{display:flex;flex-direction:column;gap:.4rem}.search-input{width:100%;border:1px solid var(--accent);border-radius:10px;padding:.6rem .8rem;font:inherit;background:var(--card);outline:none}.search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.search-hit{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.5rem .7rem;cursor:pointer;font:inherit;color:var(--text)}.search-hit:hover{border-color:var(--accent)}.search-date{display:block;font-weight:700;font-size:.85rem;color:var(--accent)}.search-snippet{display:block;font-size:.82rem;color:var(--muted);overflow:hidden}.import-preview ul{margin:.3rem 0;padding-left:1.2rem;font-size:.88rem}.import-warn{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:8px;padding:.4rem .6rem;font-size:.82rem}.import-sample{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem;font-size:.78rem;white-space:pre-wrap;word-break:break-word;max-height:12rem;overflow-y:auto}
