:root{--bg:#faf9f7;--panel:#fff;--ink:#1b1a17;--muted:#6f6b63;--line:#e5e2db;--line-strong:#d3cfc6;--accent:#c2410c;--accent-soft:#fbeee6;--danger:#b42318;--ok:#3f7d5c;--shadow:0 1px 2px #1b1a170a}[data-theme=dark]{--bg:#141413;--panel:#1a1a19;--ink:#ebe8e2;--muted:#98938a;--line:#2b2a28;--line-strong:#3a3835;--accent:#f97316;--accent-soft:#2a1b12;--danger:#f87171;--ok:#6ee7b7;--shadow:none}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.55}button,input,textarea{font:inherit;color:inherit}a{color:inherit}.app{grid-template-rows:auto auto minmax(0,1fr) auto;height:100dvh;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:12px;padding:10px 18px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:9px;font-weight:600;display:flex}.brand i{background:var(--accent);border-radius:50%;width:9px;height:9px}.save{color:var(--muted);margin-left:auto;font-size:13px}.save.is-conflict,.save.is-error{color:var(--danger)}.save.is-saved{color:var(--ok)}.topbar-actions{gap:8px;display:flex}.shell{grid-template-columns:312px minmax(0,1fr);min-height:0;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;gap:18px;padding:18px;display:flex;overflow-y:auto}.pane{flex-direction:column;min-height:0;padding:20px clamp(18px,5vw,56px) 40px;display:flex;overflow-y:auto}.statusbar{border-top:1px solid var(--line);background:var(--panel);color:var(--muted);padding:7px 18px;font-size:12px}.pane-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;margin-bottom:14px;padding-bottom:12px;display:flex}.pane-head h2{letter-spacing:-.015em;margin:0;font-size:17px;font-weight:600}.day-nav{align-items:center;gap:8px;display:flex}.chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;align-items:baseline;gap:7px;padding:4px 10px;font-size:13px;display:flex}.chip:hover{border-color:var(--line-strong)}.chip.is-active{border-color:var(--accent);background:var(--accent-soft)}.chip span{color:var(--muted);font-size:12px}.editor{flex-direction:column;flex:1;max-width:72ch;min-height:0;display:flex}.editor .title{letter-spacing:-.02em;background:0 0;border:0;padding:6px 0;font-size:22px;font-weight:600}.editor .title:focus{outline:none}.editor .title::placeholder{color:var(--line-strong)}.editor textarea{border:0;border-top:1px solid var(--line);resize:none;background:0 0;flex:1;min-height:46vh;padding:16px 0;font-size:16px;line-height:1.75}.editor textarea:focus{outline:none}.editor textarea::placeholder{color:var(--muted);opacity:.7}.editor footer{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:14px;padding-top:10px;font-size:13px;display:flex}.editor footer .actions{gap:6px;margin-left:auto;display:flex}.state{align-items:center;gap:6px;display:inline-flex}.state i{background:var(--line-strong);border-radius:50%;width:6px;height:6px}.state.is-saved i,.state.is-clean i{background:var(--ok)}.state.is-dirty i,.state.is-saving i{background:var(--accent)}.state.is-conflict i,.state.is-error i,.state.is-offline i{background:var(--danger)}.preview{border-top:1px solid var(--line);padding:16px 0;line-height:1.75}.preview h1,.preview h2,.preview h3{letter-spacing:-.02em}.preview h1:first-child{margin-top:0}.preview blockquote{border-left:2px solid var(--line-strong);color:var(--muted);margin:0;padding-left:12px}.preview code{background:var(--accent-soft);border-radius:3px;padding:1px 5px;font-size:.92em}.conflict{border:1px solid var(--danger);border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px}.conflict div{gap:8px;margin-top:6px;display:flex}.inline-note{color:var(--muted);margin:0 0 8px;font-size:13px}.search{display:block;position:relative}.search input{border:1px solid var(--line);background:var(--bg);border-radius:6px;width:100%;padding:8px 30px 8px 10px}.search input:focus{border-color:var(--accent);outline:none}.search .clear{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:18px;position:absolute;top:3px;right:4px}.results{flex-direction:column;gap:4px;display:flex}.result{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;padding:8px 2px}.result:hover strong{color:var(--accent)}.result strong{font-size:14px;font-weight:600;display:block}.result .when{color:var(--muted);font-size:12px}.result p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:3px 0 0;font-size:12.5px;display:-webkit-box;overflow:hidden}.calendar header{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.dow,.calendar .grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.dow span{text-align:center;color:var(--muted);padding-bottom:2px;font-size:11px}.day{aspect-ratio:1;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:5px;font-size:12.5px;position:relative}.day:hover{background:var(--accent-soft)}.day.is-empty{cursor:default}.day.is-future{color:var(--muted)}.day.is-written:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:4px;left:50%}.day.is-selected{background:var(--accent);color:#fff}.day.is-selected.is-written:after{background:#fff}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:6px;padding-top:14px;display:grid}.stats div{flex-direction:column;display:flex}.stats b{font-size:16px;font-weight:600}.stats span{color:var(--muted);font-size:11px}.side-actions{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:14px;display:flex}.account{border-top:1px solid var(--line);align-items:center;gap:8px;margin-top:auto;padding-top:14px;font-size:12.5px;display:flex}.account img{border-radius:50%}.account .email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account button{margin-left:auto}.ghost{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:13px}.ghost:hover{border-color:var(--line-strong);background:var(--accent-soft)}.ghost.danger{color:var(--danger)}.primary{background:var(--accent);color:#fff;cursor:pointer;text-align:center;border:0;border-radius:6px;padding:9px 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.primary.small{padding:6px 12px;font-size:13px;font-weight:500}.primary:hover{filter:brightness(1.06)}.link{cursor:pointer;text-underline-offset:2px;color:var(--muted);background:0 0;border:0;padding:0 2px;font-size:13px;text-decoration:underline}.quiet{border-bottom:1px solid var(--line);padding-bottom:2px;font-size:13px;text-decoration:none}.quiet:hover{border-color:var(--accent);color:var(--accent)}.caption,.hint{color:var(--muted);margin:0;font-size:12px}.muted{color:var(--muted)}.notice{color:var(--muted);margin:0 0 12px;font-size:13px}.banner{background:var(--accent-soft);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:8px 18px;font-size:13px;display:flex}.banner span{flex:1}.banner button{flex:none}.only-mobile{display:none}.center-page{place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);width:min(460px,100%);box-shadow:var(--shadow);border-radius:10px;padding:28px}.login-card h1{letter-spacing:-.02em;margin:12px 0 6px;font-size:21px}.login-card .mark{background:var(--accent);border-radius:7px;width:26px;height:26px}.lede{color:var(--muted);margin:0 0 16px}.login-card .primary{width:100%}.fine{color:var(--muted);margin:14px 0 0;font-size:12px}.login-card .notice{background:var(--accent-soft);color:var(--ink);border-radius:6px;margin-bottom:12px;padding:8px 10px}@media (width<=880px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:20;width:min(320px,86vw);transition:transform .18s;position:fixed;inset:45px 0 0 auto;transform:translate(-102%);box-shadow:0 8px 30px #00000029}.app.show-menu .sidebar{transform:none}.only-mobile{display:inline-block}.pane{padding:16px 18px 32px}.editor textarea{min-height:40vh}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
