:root{--bg:#f3eee6;--paper:#fffcf7;--ink:#1d1c1a;--muted:#6a655e;--line:#e3dcd2;--green:#2f7a45;--green-soft:#e7f1ea;--mark:#ffe56a;--danger:#a33b2c}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Segoe UI,system-ui,sans-serif;font-size:17px;line-height:1.5}button,input,textarea{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}input[type=text],textarea{width:100%;border:1px solid var(--line);background:#fff;padding:.5rem .65rem;border-radius:6px;resize:vertical}input[type=text]:focus,textarea:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}.page{min-height:100vh}.lock,.top{max-width:40rem;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}.top{justify-content:space-between;gap:1rem;padding-top:1.5rem;padding-bottom:.75rem}.brand-wrap,.top{display:flex;align-items:center}.brand-wrap{gap:.55rem}.brand{font-size:1.05rem;font-weight:700;margin:0}.mark{display:block}.top-right{display:flex;align-items:baseline;gap:1rem}.kbd{font-size:.72rem;color:var(--muted);letter-spacing:.04em}.lock{padding-top:.5rem;padding-bottom:5rem}.letter{margin:0 0 1.5rem;font-size:1.08rem}.letter strong{display:block;font-size:1.35rem;margin-bottom:.45rem}.lock-line{display:inline;background:var(--mark);padding:.05em .2em}.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:1.15rem 1.25rem 1.3rem;margin:0 0 1rem}.kicker{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin:0 0 .55rem}.kicker,.quiet{color:var(--muted)}.quiet{font-size:.92rem}.linkish{color:var(--muted)}.linkish:hover,.todo-add:hover{color:var(--ink)}.vision{font-size:1.15rem;line-height:1.5;min-height:4.8rem;border:0;border-bottom:1px solid var(--line);background:transparent;padding:.15rem 0 .55rem;border-radius:0;resize:none}.vision:focus{outline:none;border-bottom-color:var(--green)}.goals{display:grid;grid-gap:.7rem;gap:.7rem}.goal{display:grid;grid-template-columns:1.5rem 1fr;grid-gap:.55rem;gap:.55rem;align-items:start}.goal-n{color:var(--muted);padding-top:.55rem;font-weight:700;font-size:.9rem}.goal textarea{min-height:2.5rem;resize:none}.week-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.actions{list-style:none;margin:.2rem 0 0;padding:0}.actions li{display:grid;grid-template-columns:1.25rem 1fr auto;grid-gap:.55rem;gap:.55rem;align-items:start;padding:.55rem 0;border-bottom:1px solid var(--line)}.actions li:last-of-type{border-bottom:0}.actions input[type=checkbox]{width:1.05rem;height:1.05rem;margin-top:.2rem;accent-color:var(--green)}.actions li.is-done .action-title{text-decoration:line-through;color:var(--muted)}.action-title{margin:0}.why{margin:.12rem 0 0;font-size:.88rem}.why,.x{color:var(--muted)}.x{font-size:.95rem}.add-todo{margin-top:.35rem;border:0;background:transparent;padding:.45rem 0;border-radius:0;color:var(--ink)}.add-todo:focus{outline:none;border-bottom:1px solid var(--green)}.btn{border:0;padding:.5rem .9rem;background:var(--green);color:#fff;border-radius:8px}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn:disabled{opacity:.45;cursor:default}.paste{min-height:7rem}.proposals{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line)}.proposal{display:grid;grid-template-columns:1.25rem 1fr;grid-gap:.55rem;gap:.55rem;margin:0 0 .7rem}.proposal input[type=checkbox]{width:1.05rem;height:1.05rem;margin-top:.2rem;accent-color:var(--green)}.refusal{color:var(--danger);margin:.75rem 0 0}.row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem;align-items:center}details.archive{margin-top:.85rem;color:var(--muted)}details.archive ul{padding-left:1.1rem}.scrim{position:fixed;inset:0;z-index:2;background:transparent}.drawer{position:fixed;top:0;right:0;z-index:3;display:flex;flex-direction:column;width:min(24rem,100%);height:100vh;background:var(--paper);border-left:1px solid var(--line);padding:1.35rem 1.2rem 1.15rem}.drawer-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem}.drawer-note{color:var(--muted);font-size:.92rem;margin:0 0 1rem}.chat{flex:1 1;overflow:auto;padding-right:.25rem}.msg{margin:0 0 1.05rem}.msg-role{font-size:.75rem;font-weight:700;color:var(--muted)}.msg-body{margin:.2rem 0 0;white-space:pre-wrap}.composer{display:grid;grid-gap:.5rem;gap:.5rem;padding-top:.85rem;border-top:1px solid var(--line)}.composer textarea{min-height:4rem;resize:none}.empty{color:var(--muted);margin:0 0 .85rem}