:root{--bg:#faf9f6;--sidebar-bg:#f0ede8;--border:#ddd8d0;--accent:#5a7a5a;--accent-hover:#4a6a4a;--text:#2c2c2c;--text-muted:#777;--dot:#5a7a5a;--today-ring:#c0a060;--today-text:#6f4a00;--selected-bg:#dff0df;--danger:#c0392b;--sidebar-w:280px;--mobile-save-action-space:0px;--font-body:"Noto Serif", "Noto Serif JP", serif;--font-editor:"Noto Serif", "Noto Serif JP", serif;--card-bg:#fff;--input-bg:#fff;--shadow:#0000000f;--shadow-heavy:#0000002e;--overlay:#00000059;--overlay-heavy:#00000073;--overlay-darkest:#0000008c;--code-bg:#0000000f;--skeleton-shim:#ffffffbf;--skeleton-bg:#fff9;--skeleton-overlay:#ffffffbf;--skeleton-row-bg:#ccc8c0;--google-btn-bg:#fff;--google-btn-text:#3c4043;--google-btn-border:#dadce0;--google-btn-hover-bg:#f8f9fa;--google-btn-hover-border:#c6c9cc;--google-btn-active-bg:#f1f3f4;--google-btn-shadow:#00000014;--google-btn-shadow-hover:#00000024;--unsaved-bg:#fdf7e6;--unsaved-border:#c9a84c;--unsaved-text:#6f4a00;--unsaved-hover:#faeec8;--conflict-bg:#fff7e8;--conflict-border:#e0b35b;--conflict-text:#6f4a00;--draft-bg:#eef4fb;--draft-border:#7ba7d4;--draft-text:#1a3a5c;--draft-hover:#ddeaf8;--expired-bg:#fdf0ee;--expired-border:#f5c6c0;--danger-hover:#a93226;--save-success-bg:#437a55;--save-success-flash:#5fad77;--save-glow:#5a7a5a40;--save-btn-shadow:#2c2c2c2e;--spinner-border:#ffffff6b;--sidebar-box-shadow:#0000001f;--restoring-search-bg:#ffffffbf;--unsaved-status:#8a5f00;--theme-icon:var(--text-muted);transition:background-color .25s,color .2s,border-color .2s}[data-theme=dark]{--bg:#1a1a1a;--sidebar-bg:#222;--border:#3a3a3a;--accent:#6b9b6b;--accent-hover:#5a8a5a;--text:#e0e0e0;--text-muted:#888;--dot:#6b9b6b;--today-ring:#d4b060;--today-text:#e0c080;--selected-bg:#2a3d2a;--danger:#e74c3c;--card-bg:#2a2a2a;--input-bg:#2a2a2a;--shadow:#0000004d;--shadow-heavy:#00000080;--overlay:#00000080;--overlay-heavy:#000000a6;--overlay-darkest:#000000bf;--code-bg:#ffffff14;--skeleton-shim:#ffffff14;--skeleton-bg:#ffffff0d;--skeleton-overlay:#ffffff1f;--skeleton-row-bg:#3a3a3a;--google-btn-bg:#303134;--google-btn-text:#e8eaed;--google-btn-border:#5f6368;--google-btn-hover-bg:#3c4043;--google-btn-hover-border:#8ab4f8;--google-btn-active-bg:#484a4d;--google-btn-shadow:#0000004d;--google-btn-shadow-hover:#00000080;--unsaved-bg:#3d3520;--unsaved-border:#8a7030;--unsaved-text:#e0c080;--unsaved-hover:#4d4428;--conflict-bg:#3d3520;--conflict-border:#8a7030;--conflict-text:#e0c080;--draft-bg:#1e2d3d;--draft-border:#4a6a8a;--draft-text:#a0c8e0;--draft-hover:#263848;--expired-bg:#3d2020;--expired-border:#8a3a3a;--danger-hover:#c0392b;--save-success-bg:#437a55;--save-success-flash:#5fad77;--save-glow:#6b9b6b4d;--save-btn-shadow:#c8c8c826;--spinner-border:#ffffff40;--sidebar-box-shadow:#0006;--restoring-search-bg:#ffffff0f;--unsaved-status:#e0c080}[data-font=sans]{--font-body:"Noto Sans", "Noto Sans JP", sans-serif;--font-editor:"Noto Sans", "Noto Sans JP", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{overscroll-behavior:none;height:100%;overflow:hidden}body{font-family:var(--font-body);background:var(--bg);color:var(--text);height:100dvh;overflow:hidden}.login-screen{background:var(--bg);justify-content:center;align-items:center;height:100dvh;display:flex}.login-card{text-align:center;background:var(--card-bg);border:1px solid var(--border);box-shadow:0 4px 24px var(--shadow);border-radius:12px;padding:3rem 4rem}.login-logo{width:4.75rem;height:4.75rem;margin:0 auto 1rem;display:block}.login-card h1{margin-bottom:.5rem;font-size:1.8rem}.login-card>p{color:var(--text-muted);margin-bottom:1.5rem}.session-expired-msg{color:var(--danger);background:var(--expired-bg);border:1px solid var(--expired-border);border-radius:6px;padding:.5rem .8rem;font-size:.85rem;margin-bottom:1rem!important}.session-expired-msg.neutral{color:var(--text-muted);background:var(--sidebar-bg);border-color:var(--border)}.btn-signin-google{background:var(--google-btn-bg);color:var(--google-btn-text);border:1px solid var(--google-btn-border);letter-spacing:.25px;cursor:pointer;height:40px;box-shadow:0 1px 2px var(--google-btn-shadow);white-space:nowrap;border-radius:4px;align-items:center;gap:10px;padding:0 16px;font-family:Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:500;transition:background .15s,box-shadow .15s;display:inline-flex}.btn-signin-google:hover{background:var(--google-btn-hover-bg);box-shadow:0 2px 6px var(--google-btn-shadow-hover);border-color:var(--google-btn-hover-border)}.btn-signin-google:active{background:var(--google-btn-active-bg);box-shadow:0 1px 2px var(--google-btn-shadow)}.btn-signin-google:disabled{cursor:default;opacity:.6}.btn-signin-google:disabled:hover{background:var(--google-btn-bg);border-color:var(--google-btn-border);box-shadow:0 1px 2px var(--google-btn-shadow)}.btn-use-another-account{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin:.9rem auto 0;font-family:inherit;font-size:.82rem;text-decoration:underline;display:block}.btn-use-another-account:hover{color:var(--text)}.google-logo{flex-shrink:0;width:18px;height:18px}.login-footer{margin-top:1.5rem!important;margin-bottom:0!important;font-size:.78rem!important}.login-footer a{color:var(--text-muted);text-decoration:none}.login-footer a:hover{text-decoration:underline}.privacy-details{text-align:left;margin-top:1.2rem}.privacy-details>summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.35rem;font-size:.78rem;list-style:none;display:flex}.privacy-details>summary::-webkit-details-marker{display:none}.privacy-details>summary:after{content:"▾";font-size:.7rem;transition:transform .15s}.privacy-details[open]>summary:after{transform:rotate(-180deg)}.privacy-details>summary:hover{color:var(--text)}.privacy-details[open]>summary{margin-bottom:.6rem}.privacy-body{background:var(--sidebar-bg);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;padding:.85rem 1rem;font-size:.78rem}.privacy-body ul{flex-direction:column;gap:.5rem;list-style:none;display:flex}.privacy-body li{align-items:flex-start;gap:.5rem;line-height:1.4;display:flex}.privacy-body li:before{content:"✓";color:var(--accent);flex-shrink:0;font-weight:700}.privacy-body code{background:var(--code-bg);border-radius:3px;padding:0 3px;font-family:monospace;font-size:.9em}.app{height:100dvh;display:flex}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden auto}.sidebar-top{justify-content:space-between;align-items:center;padding:1rem 1rem .5rem;display:flex}.app-title{cursor:pointer;align-items:center;gap:.45rem;font-size:1.1rem;display:inline-flex}.app-title:hover{opacity:.8}.app-title-icon{flex:none;width:1.65rem;height:1.65rem}.sidebar-actions{align-items:center;gap:.25rem;display:inline-flex}.btn-close-sidebar{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:.1rem .35rem;font-size:1.25rem;line-height:1;display:none}.btn-close-sidebar:hover{background:var(--border);color:var(--text)}.btn-theme-toggle{cursor:pointer;color:var(--theme-icon);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.2rem .4rem;display:flex}.btn-theme-toggle:hover{background:var(--border);color:var(--text)}.btn-font-toggle{cursor:pointer;color:var(--theme-icon);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.2rem .4rem;display:flex}.btn-font-toggle:hover{background:var(--border);color:var(--text)}.btn-signout{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:1.1rem}.btn-signout:hover{background:var(--border)}.btn-menu{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:1.4rem;line-height:1;display:none}.btn-menu:hover{background:var(--border)}.btn-day-nav{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:.12rem .45rem;font-size:1.5rem;line-height:1}.btn-day-nav:hover{background:var(--border);color:var(--text)}.btn-icon{flex-shrink:0;display:block}.sidebar-overlay{background:var(--overlay);z-index:99;display:none;position:fixed;inset:0}.search-bar{padding:.6rem 1rem;position:relative}.search-input-wrap{position:relative}.search-icon{color:var(--text-muted);pointer-events:none;flex-shrink:0;width:14px;height:14px;position:absolute;top:50%;left:.55rem;transform:translateY(-50%)}.search-bar input{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);border-radius:6px;outline:none;padding:.4rem .7rem .4rem 1.9rem;font-family:inherit;font-size:.85rem}.search-bar input:focus{border-color:var(--accent)}.search-status{color:var(--text-muted);padding:.3rem 0;font-size:.8rem}.search-status.error{color:var(--danger)}.search-results{background:var(--card-bg);border:1px solid var(--border);border-radius:6px;max-height:200px;margin-top:.3rem;list-style:none;overflow-y:auto}.search-results li{cursor:pointer;border-bottom:1px solid var(--border);padding:.5rem .7rem;font-size:.82rem}.search-results li:last-child{border-bottom:none}.search-results li:hover{background:var(--selected-bg)}.search-date{color:var(--accent);font-weight:700;line-height:1.25;display:block}.search-snippet{color:var(--text-muted);font-size:.78rem}.calendar{padding:.5rem 1rem 0}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:.4rem;font-size:.85rem;display:flex}.calendar-nav button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 .3rem;font-size:1.2rem;line-height:1}.calendar-nav button:hover{color:var(--text)}.calendar-nav button:disabled{cursor:default;opacity:.35}.calendar-nav button:disabled:hover{color:var(--text-muted)}.calendar-title{justify-content:center;align-items:center;gap:.35rem;min-width:11.6rem;font-weight:600;display:inline-flex}.calendar-month-select,.calendar-year-select{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;font:inherit;border-radius:4px;padding:.1rem .2rem;font-size:.8rem}.calendar-month-select{width:6.8rem}.calendar-year-select{width:4.4rem}.calendar-month-select:hover,.calendar-month-select:focus,.calendar-year-select:hover,.calendar-year-select:focus{border-color:var(--text-muted);outline:none}.calendar-today-row{text-align:center;margin-bottom:.5rem}.today-btn{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:4px;padding:.15rem .6rem;font-size:.75rem;line-height:1.4}.today-btn:hover{color:var(--text);border-color:var(--text-muted)}.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;font-size:.78rem;display:grid}.cal-day-label{color:var(--text-muted);padding:.2rem 0}.cal-day{cursor:pointer;border-radius:4px;flex-direction:column;align-items:center;padding:.25rem 0;line-height:1.4;display:flex;position:relative}.cal-day:hover{background:var(--border)}.cal-day.today{outline:2px solid var(--today-ring);border-radius:4px;font-weight:700}.cal-day.selected{background:var(--selected-bg)}.cal-day.has-entry{font-weight:600}.dot{background:var(--dot);border-radius:50%;width:5px;height:5px;margin-top:1px}.btn-settings{background:var(--sidebar-bg);width:100%;color:var(--text-muted);cursor:pointer;border:none;border-top:1px solid var(--border);z-index:1;align-items:center;gap:.4rem;margin-top:auto;padding:.5rem 1rem;font-family:inherit;font-size:.82rem;display:flex;position:sticky;bottom:0}.btn-settings:before{content:"";background:linear-gradient(transparent, var(--sidebar-bg));pointer-events:none;height:1.5rem;position:absolute;bottom:100%;left:0;right:0}.btn-settings:hover{background:var(--border);color:var(--text)}.settings-overlay{background:var(--overlay-heavy);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal{background:var(--card-bg);border:1px solid var(--border);width:min(440px,90vw);box-shadow:0 8px 32px var(--shadow-heavy);border-radius:10px;flex-direction:column;max-height:min(90dvh,90vh);display:flex;overflow:hidden}.settings-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.2rem;display:flex}.settings-modal-header h3{margin:0;font-size:1rem;font-weight:600}.settings-modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:.1rem .35rem;font-size:1.4rem;line-height:1}.settings-modal-close:hover{background:var(--border);color:var(--text)}.settings-list{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.settings-item{justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.2rem;display:flex}.settings-item-label{color:var(--text);font-size:.9rem}.settings-switch{background:var(--border);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:40px;height:22px;padding:0;transition:background .2s;position:relative}.settings-switch.active{background:var(--accent)}.settings-switch-thumb{width:18px;height:18px;box-shadow:0 1px 3px var(--shadow);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:2px;left:2px}.settings-switch.active .settings-switch-thumb{transform:translate(18px)}.settings-language-select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.35rem .6rem;font-family:inherit;font-size:.82rem}.settings-divider{background:var(--border);height:1px;margin:0 1.2rem}.settings-about{padding:.9rem 1.2rem 1rem}.settings-about-title{color:var(--text);margin:0 0 .4rem;font-size:.82rem;font-weight:600}.settings-about-text{color:var(--text-muted,var(--text));margin:0 0 .35rem;font-size:.82rem}.settings-about-list{color:var(--text-muted,var(--text));flex-direction:column;gap:.2rem;margin:0;padding-left:1.2rem;font-size:.8rem;display:flex}.settings-shortcuts{flex-direction:column;gap:.45rem;margin-top:.2rem;display:flex}.settings-shortcut-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.settings-shortcut-desc{color:var(--text-muted,var(--text));font-size:.82rem}.settings-shortcut-keys{flex-shrink:0;align-items:center;gap:.2rem;display:flex}.settings-shortcut-keys span{color:var(--text-muted,var(--text));opacity:.6;font-size:.72rem}.settings-shortcut-keys kbd{background:var(--code-bg,var(--border));border:1px solid var(--border);color:var(--text);border-radius:4px;padding:.1em .4em;font-family:ui-monospace,monospace;font-size:.72rem;line-height:1.4}.settings-about-list code{background:var(--code-bg,var(--border));border-radius:3px;padding:.05em .3em;font-family:ui-monospace,monospace;font-size:.78rem}.settings-legal{color:var(--text-muted);justify-content:center;gap:.25rem;padding:.25rem 0;font-size:.8rem;display:flex}.settings-legal a{color:var(--text-muted);text-decoration:none}.settings-legal a:hover{text-decoration:underline}.settings-action-btn{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-family:inherit;font-size:.82rem;transition:opacity .15s,transform .1s;display:inline-flex}.settings-action-btn:hover{opacity:.88}.settings-action-btn:active{transform:scale(.97)}.settings-export .btn-export-modern{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-family:inherit;font-size:.82rem;transition:opacity .15s,transform .1s;display:inline-flex}.settings-export .btn-export-modern:hover:not(:disabled){opacity:.88}.settings-export .btn-export-modern:active:not(:disabled){transform:scale(.97)}.settings-export .btn-export-modern:disabled{cursor:not-allowed;opacity:.55}.btn-export-icon{flex-shrink:0}.btn-export-progress{font-size:.78rem}.export-confirm-overlay{background:var(--overlay-heavy);z-index:210;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.export-confirm-modal{background:var(--card-bg);border:1px solid var(--border);width:min(340px,88vw);box-shadow:0 8px 32px var(--shadow-heavy);border-radius:10px;flex-direction:column;gap:.8rem;padding:1.5rem;display:flex}.export-confirm-title{margin:0;font-size:1rem;font-weight:600}.export-confirm-desc{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.5}.export-confirm-actions{justify-content:flex-end;gap:.6rem;margin-top:.3rem;display:flex}.export-confirm-cancel{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:.4rem 1rem;font-family:inherit;font-size:.85rem}.export-confirm-cancel:hover{background:var(--border)}.export-confirm-start{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.4rem 1rem;font-family:inherit;font-size:.85rem}.export-confirm-start:hover{opacity:.9}.sidebar-status{color:var(--text-muted);padding:.4rem 1rem;font-size:.82rem}.sidebar-status.error{color:var(--danger)}.entry-list-heading{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;padding:.75rem 1rem .1rem;font-size:.72rem;font-weight:700}.entry-list{flex:1;padding:.4rem 0;list-style:none}.entry-list li{cursor:pointer;border-left:3px solid #0000;flex-direction:column;gap:.2rem;padding:.45rem 1rem;font-size:.85rem;display:flex}.entry-list li:hover{background:var(--selected-bg)}.entry-list li.active{border-left-color:var(--accent);background:var(--selected-bg)}.entry-list li.today{border-left-color:var(--today-ring)}.entry-list li.today.active{border-left-color:var(--accent)}.entry-list-date{justify-content:space-between;align-items:baseline;gap:.5rem;min-width:0;font-weight:600;line-height:1.25;display:flex}.entry-list-date>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.entry-list-date[data-today]{color:var(--today-text)}.entry-list-weekday{color:var(--text-muted);flex:none;font-size:.72rem}.entry-list-preview{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;line-height:1.35;display:block;overflow:hidden}.restoring-app{pointer-events:none}.restoring-search{background:var(--restoring-search-bg);border:1px solid var(--border);border-radius:6px;height:32px;margin:.6rem 1rem}.restoring-entry-list{flex-direction:column;gap:.45rem;padding-top:.7rem;display:flex}.restoring-entry-list li{background:var(--skeleton-bg);border-left:0;border-radius:4px;height:28px;margin:0 1rem}.restoring-editor{color:var(--text-muted)}.restoring-lines{flex-direction:column;gap:.85rem;margin-top:.5rem;display:flex}.restoring-lines span{background:var(--sidebar-bg);border-radius:999px;height:1rem;display:block}.restoring-lines span:first-child{width:72%}.restoring-lines span:nth-child(2){width:52%}.restoring-lines span:nth-child(3){width:64%}.restoring-search,.restoring-entry-list li,.restoring-lines span{background-image:linear-gradient(90deg, transparent, var(--skeleton-overlay), transparent);background-size:220% 100%;animation:1.6s ease-in-out infinite restoring-pulse}@keyframes restoring-pulse{0%{background-position:120% 0}to{background-position:-120% 0}}.main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.editor{flex-direction:column;width:100%;max-width:800px;height:100%;min-height:0;margin:0 auto;padding:.9rem 2rem 1.5rem;display:flex;position:relative}.editor-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.15rem;padding-bottom:.35rem;display:flex}.editor-header:has(+.editor-meta){border-bottom:none;padding-bottom:.1rem}.editor-meta{color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:.5rem;padding-bottom:.35rem;font-size:.8rem}.editor-meta:empty{display:none}.editor-status-line{color:var(--text-muted);margin:-.2rem 0 .5rem;font-size:.78rem}.editor-date-group{flex:1 0 auto;align-items:center;gap:.6rem;min-width:max-content;display:flex}.editor-header h2{letter-spacing:0;white-space:nowrap;font-size:1.3rem}.entry-date-text{align-items:baseline;gap:.4rem;min-width:0;line-height:1.15;display:inline-flex}.entry-date-text[data-today]{color:var(--today-text);font-weight:600}.entry-date-text[data-dirty]:before{content:"";background:var(--today-ring);border-radius:50%;flex:none;align-self:center;width:.42rem;height:.42rem}.entry-date-label-short{display:none}.entry-date-weekday{color:var(--text-muted);letter-spacing:0;font-size:.62em;font-weight:600}.editor-actions{flex:0 auto;align-items:center;gap:.7rem;min-width:0;display:flex}.editor-status{color:var(--text-muted);text-align:right;min-width:4.8rem;font-size:.82rem}.editor-status.unsaved-status{color:var(--unsaved-status)}.editor-status.saving-status{color:var(--accent)}.editor-status.saved-status{color:var(--accent);animation:.16s ease-out saved-status-in}.editor-status.saved-status.is-exiting{animation:.22s ease-in forwards saved-status-out}.editor-actions button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:5px;justify-content:center;align-items:center;gap:.4rem;padding:.35rem .9rem;font-family:inherit;font-size:.85rem;display:inline-flex}.editor-actions button:disabled{opacity:.5;cursor:default}.editor-actions .btn-save{justify-content:center;align-items:center;gap:.45rem;min-width:5.7rem;display:inline-flex}.editor-actions .btn-refresh-entry{border:1px solid var(--border);color:var(--text);background:0 0;min-width:2.4rem;padding:.35rem .65rem}.editor-actions .btn-refresh-entry:not(:disabled):hover{background:var(--border);color:var(--text)}.editor-actions .btn-refresh-entry[aria-busy=true]{background:var(--accent);color:#fff;opacity:1;box-shadow:0 2px 8px var(--save-glow)}.editor-actions .btn-refresh-entry[aria-busy=true] .btn-saving-spinner{border-color:var(--spinner-border);border-top-color:#fff}.editor-actions .btn-saving{opacity:.85;animation:1.1s ease-in-out infinite save-button-pulse}.btn-saving-spinner{border:2px solid var(--spinner-border);border-top-color:#fff;border-radius:50%;width:.72rem;height:.72rem;animation:.75s linear infinite save-spinner}@keyframes save-button-pulse{0%,to{box-shadow:none}50%{box-shadow:0 2px 8px var(--save-glow)}}@keyframes save-spinner{to{transform:rotate(360deg)}}.saving-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.saving-modal{background:var(--card-bg);border:1px solid var(--border);box-shadow:0 8px 24px var(--shadow-heavy);border-radius:10px;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 3rem;display:flex}.saving-spinner{border:3px solid var(--spinner-border);border-top-color:var(--save-success-bg);border-radius:50%;width:1.5rem;height:1.5rem;animation:.75s linear infinite save-spinner}.saving-text{color:var(--text-muted);font-size:.9rem}@keyframes saved-status-in{0%{transform:translate(6px)}to{transform:translate(0)}}@keyframes saved-status-out{0%{transform:translate(0)}to{transform:translate(10px)}}.editor-actions .btn-save.btn-saved{opacity:1;background:var(--save-success-bg);animation:.35s ease-out saved-button-flash}@keyframes saved-button-flash{0%{background:var(--save-success-flash)}to{background:var(--save-success-bg)}}.btn-delete{background:var(--danger)!important}.btn-delete:not(:disabled):hover{background:var(--danger-hover)!important}.more-menu-container{position:relative}.editor-actions .btn-more{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:.45rem .6rem;font-size:1.4rem;line-height:1}.editor-actions .btn-more:hover,.editor-actions .btn-more:focus,.editor-actions .btn-more:active{background:0 0}.more-menu{background:var(--card-bg);border:1px solid var(--border);min-width:8rem;box-shadow:0 6px 18px var(--shadow-heavy);z-index:120;border-radius:6px;position:absolute;top:calc(100% + .35rem);right:0;overflow:hidden}.more-menu-item{color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:.35rem;padding:.55rem .75rem;font-size:.85rem;display:flex}.more-menu-item:hover{background:var(--border)}.more-menu-item-disabled{opacity:.4;cursor:default;pointer-events:none}.more-menu-delete{color:var(--danger)}.editor-share-toast{color:var(--text-muted);padding:0 1rem .25rem;font-size:.75rem;animation:2s forwards share-toast-fadeout}@keyframes share-toast-fadeout{0%,70%{opacity:1}to{opacity:0}}.pull-refresh-indicator{background:var(--card-bg);border:1px solid var(--border);box-shadow:0 4px 14px var(--shadow-heavy);pointer-events:none;z-index:80;border-radius:999px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;transition:opacity .12s,transform .16s;display:none;position:absolute;top:.75rem;left:50%}.pull-refresh-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:1rem;height:1rem;display:block}.pull-refresh-indicator.ready .pull-refresh-spinner,.pull-refresh-indicator.refreshing .pull-refresh-spinner{animation:.75s linear infinite save-spinner}.conflict-panel{border:1px solid var(--conflict-border);background:var(--conflict-bg);border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem .9rem;display:flex}.conflict-panel strong{color:var(--conflict-text);margin-bottom:.2rem;font-size:.9rem;display:block}.conflict-panel p{color:var(--text-muted);font-size:.82rem;line-height:1.5}.conflict-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.conflict-actions button{border:1px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:5px;padding:.35rem .75rem;font-family:inherit;font-size:.82rem}.conflict-actions button:not(:disabled):hover{background:var(--sidebar-bg)}.conflict-actions button:disabled{opacity:.5;cursor:default}.unsaved-nav-banner{background:var(--unsaved-bg);border:1px solid var(--unsaved-border);color:var(--unsaved-text);border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.6rem .9rem;font-size:.88rem;display:flex}.unsaved-nav-actions{flex-shrink:0;gap:.5rem;display:flex}.unsaved-nav-actions button{background:var(--card-bg);border:1px solid var(--unsaved-border);color:var(--unsaved-text);cursor:pointer;border-radius:5px;padding:.3rem .7rem;font-family:inherit;font-size:.82rem}.unsaved-nav-actions button:hover{background:var(--unsaved-hover)}.unsaved-nav-actions button:disabled{cursor:default;opacity:.5}.restored-banner{border:1px solid var(--draft-border);background:var(--draft-bg);color:var(--draft-text);border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.6rem .9rem;font-size:.88rem;display:flex}.restored-banner-actions{flex-shrink:0;gap:.5rem;display:flex}.restored-banner-actions button{border:1px solid var(--draft-border);background:var(--card-bg);color:var(--draft-text);cursor:pointer;border-radius:5px;padding:.3rem .7rem;font-family:inherit;font-size:.82rem}.restored-banner-actions button:hover{background:var(--draft-hover)}.error-boundary-fallback{height:100dvh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-family:inherit;display:flex}.error-boundary-fallback h2{margin:0;font-size:1.2rem}.error-boundary-fallback button{border:1px solid var(--border);background:var(--sidebar-bg);color:var(--text);cursor:pointer;border-radius:6px;padding:.5rem 1.2rem;font-family:inherit;font-size:.9rem}.error-boundary-fallback button:hover{background:var(--border)}.delete-modal-overlay{background:var(--overlay-heavy);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.delete-modal{background:var(--card-bg);border:1px solid var(--border);width:min(420px,90vw);box-shadow:0 8px 32px var(--shadow-heavy);border-radius:10px;flex-direction:column;gap:.9rem;padding:2rem;display:flex}.delete-modal h3{color:var(--danger);font-size:1.15rem}.delete-modal p{color:var(--text);font-size:.9rem;line-height:1.6}.delete-modal-hint{color:var(--text-muted)!important}.delete-modal-input{border:1px solid var(--border);border-radius:6px;outline:none;width:100%;padding:.5rem .8rem;font-family:monospace;font-size:.95rem}.delete-modal-input:focus{border-color:var(--danger)}.delete-modal-actions{justify-content:flex-end;gap:.7rem;margin-top:.3rem;display:flex}.delete-modal-actions button{border:1px solid var(--border);cursor:pointer;background:var(--bg);color:var(--text);border-radius:6px;padding:.5rem 1.2rem;font-size:.88rem}.delete-modal-actions button:not(:disabled):hover{background:var(--sidebar-bg)}.delete-modal-actions button:disabled{opacity:.45;cursor:default}.session-expired-overlay{background:var(--overlay-darkest);z-index:300;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.session-expired-modal{background:var(--card-bg);border:1px solid var(--border);width:min(380px,90vw);box-shadow:0 8px 32px var(--shadow-heavy);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.session-expired-modal-msg{color:var(--text);margin:0;font-size:.95rem}.session-expired-modal-error{color:var(--danger);background:var(--expired-bg);border:1px solid var(--expired-border);border-radius:6px;width:100%;margin:0;padding:.4rem .7rem;font-size:.85rem}.btn-reauth{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.55rem 1.6rem;font-size:.95rem;font-weight:600}.btn-reauth:disabled{opacity:.55;cursor:default}.btn-reauth:not(:disabled):hover{filter:brightness(1.08)}.entry-skeleton{flex-direction:column;flex:1;gap:.9rem;padding-top:.35rem;display:flex}.entry-skeleton-row{background-color:var(--skeleton-row-bg);background-image:linear-gradient(90deg, transparent, var(--skeleton-overlay), transparent);background-size:220% 100%;border-radius:999px;width:78%;height:1.1rem;animation:1.4s ease-in-out infinite entry-skeleton-shimmer}.entry-skeleton-row.short{width:34%}.entry-skeleton-row.medium{width:62%}.entry-skeleton-row.long{width:88%}@keyframes entry-skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.editor-textarea{overscroll-behavior:contain;resize:none;min-height:0;font-family:var(--font-editor);color:var(--text);background:0 0;border:none;outline:none;flex:1;width:100%;font-size:1.05rem;line-height:1.8;overflow-y:auto}.history-overlay{background:var(--overlay-heavy);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.history-modal{background:var(--card-bg);border:1px solid var(--border);width:min(760px,95vw);height:min(540px,90vh);box-shadow:0 8px 32px var(--shadow-heavy);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.history-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.9rem 1.2rem;display:flex}.history-modal-header h3{margin:0;font-size:1rem;font-weight:600}.history-modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:.1rem .35rem;font-size:1.4rem;line-height:1}.history-modal-close:hover{background:var(--border);color:var(--text)}.history-modal-body{flex:1;min-height:0;display:flex}.history-revision-list{border-right:1px solid var(--border);flex-direction:column;width:240px;min-width:240px;padding:.4rem 0;display:flex;overflow-y:auto}.history-revision-item{cursor:pointer;border-left:3px solid #0000;flex-direction:column;gap:.2rem;padding:.6rem 1rem;display:flex}.history-revision-item:hover{background:var(--sidebar-bg)}.history-revision-item.selected{background:var(--selected-bg);border-left-color:var(--accent)}.history-revision-time{color:var(--text);font-size:.85rem}.history-revision-badge{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600}.unsaved-badge{color:var(--warn,#e0a800)}.history-preview-pane{flex-direction:column;flex:1;min-width:0;display:flex}.history-preview-diff{min-height:0;font-family:var(--font-editor);color:var(--text);overscroll-behavior:contain;cursor:default;white-space:pre-wrap;word-break:break-word;background:0 0;border:none;outline:none;flex:1;padding:1rem 1.5rem;font-size:1rem;line-height:1.8;overflow-y:auto}.history-preview-diff>div{margin:0;padding:0}.diff-add{color:#155724;background:#d4edda}.diff-remove{color:#721c24;background:#f8d7da;text-decoration:line-through}.diff-add-word{color:#155724;background:#d4edda}.diff-remove-word{color:#721c24;background:#f8d7da;text-decoration:line-through}.history-modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:.75rem;padding:.75rem 1.2rem;display:flex}.history-restore-error{color:var(--danger);flex:1;font-size:.82rem}.btn-restore{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-items:center;gap:.45rem;padding:.45rem 1.1rem;font-family:inherit;font-size:.88rem;display:inline-flex}.btn-restore:disabled{opacity:.5;cursor:default}.btn-restore:not(:disabled):hover{opacity:.88}.history-skeleton-row{background-color:var(--skeleton-row-bg);background-image:linear-gradient(90deg, transparent, var(--skeleton-overlay), transparent);background-size:220% 100%;border-radius:6px;height:2.6rem;margin:.3rem .8rem;animation:1.4s ease-in-out infinite entry-skeleton-shimmer}.history-preview-skeleton{flex-direction:column;gap:.9rem;padding:1rem 1.5rem;display:flex}.history-preview-skeleton-row{background-color:var(--skeleton-row-bg);background-image:linear-gradient(90deg, transparent, var(--skeleton-overlay), transparent);background-size:220% 100%;border-radius:999px;width:80%;height:1.1rem;animation:1.4s ease-in-out infinite entry-skeleton-shimmer}.history-preview-skeleton-row.short{width:40%}.history-preview-skeleton-row.medium{width:65%}.history-list-error,.history-preview-error{color:var(--danger);padding:.75rem 1rem;font-size:.82rem}@media (width<=640px){:root{--mobile-save-action-space:calc(4.5rem + env(safe-area-inset-bottom) + var(--mobile-keyboard-inset-bottom,0px))}body{overflow:hidden}.settings-shortcuts-section{display:none}*{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}.login-card{margin:1rem;padding:2.5rem 1.8rem}.btn-menu{display:block}.btn-close-sidebar{display:inline-block}.sidebar{height:100%;width:min(var(--sidebar-w), 85vw);z-index:100;min-width:0;box-shadow:4px 0 24px var(--sidebar-box-shadow);transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}.main{width:100%}.editor{padding:1rem 1rem 5.75rem}.pull-refresh-indicator{display:flex}.editor-header{grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:.75rem;display:grid}.editor-header h2{min-width:0;font-size:1.1rem;overflow:hidden}.editor-date-group{gap:.4rem;min-width:0}.btn-day-nav{min-width:2rem;min-height:2rem;padding:.1rem .45rem;font-size:1.65rem}.entry-date-text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-flex;overflow:hidden}.entry-date-label-full{display:none}.entry-date-label-short{display:inline}.editor-actions button{padding:.5rem .8rem;font-size:.82rem}.editor-actions{flex-wrap:nowrap;justify-content:flex-end;gap:.5rem;min-width:max-content;min-height:2.75rem}.editor-status{flex-basis:100%;min-width:0}.editor-status-line{font-size:.76rem}.conflict-panel{flex-direction:column;align-items:stretch}.conflict-actions{flex-wrap:wrap}.unsaved-nav-banner{bottom:max(1rem, env(safe-area-inset-bottom));box-shadow:0 10px 28px var(--shadow-heavy);z-index:110;margin:0;position:fixed;left:1rem;right:1rem}.editor-textarea{padding-bottom:calc(1rem + var(--mobile-save-action-space));scroll-padding-bottom:calc(1rem + var(--mobile-save-action-space));scrollbar-width:none;font-size:1rem}.editor-textarea::-webkit-scrollbar{display:none}.btn-text,.editor-actions .btn-refresh-entry{display:none}.editor-actions .btn-save{right:max(1rem, env(safe-area-inset-right));bottom:calc(1rem + env(safe-area-inset-bottom) + var(--mobile-keyboard-inset-bottom,0px));z-index:90;width:3.5rem;min-width:3.5rem;height:3.5rem;box-shadow:0 6px 18px var(--save-btn-shadow);border-radius:999px;padding:0;position:fixed}.editor-actions .btn-delete{width:2.75rem;min-width:2.75rem;height:2.75rem;padding:0}.editor-actions button .btn-icon{width:20px;height:20px}.more-menu .btn-text,.btn-settings .btn-text{display:inline}.editor-actions .btn-more{background:0 0;width:2.75rem;min-width:2.75rem;height:2.75rem;padding:0;font-size:1.6rem}@media (width<=340px){.entry-date-weekday{display:none}.btn-day-nav{min-width:1.85rem;padding:.1rem .35rem}}.cal-day{padding:.4rem 0}.entry-list li{padding:.65rem 1rem}.btn-settings{min-height:2.75rem;padding:.65rem 1rem;font-size:.85rem}.history-modal{border:none;border-radius:0;width:100vw;height:100dvh}.history-modal-body{flex-direction:column}.history-revision-list{border-right:none;border-bottom:1px solid var(--border);width:100%;min-width:0;max-height:38%;padding:0}.history-preview-pane{flex:1;min-height:0}}
