
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:var(--w-body) var(--d-fs-row)/1.45 var(--sans)}
.app{display:grid;grid-template-columns:var(--d-sidebar-w) 1fr;min-height:100vh}
nav{background:var(--surface-2);border-right:1px solid var(--line);padding:var(--s4) var(--s3);display:flex;flex-direction:column;gap:2px}
.brand{font:var(--w-body) 18px var(--serif);color:var(--ink);padding:0 var(--s2) var(--s4)}
.cap{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--d-r);background:var(--surface);color:var(--ink);margin-bottom:var(--s3);font-weight:var(--w-body)}
.grp{font-size:var(--fs-micro);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--muted);padding:var(--s4) 10px 4px}
.ni{display:flex;justify-content:space-between;padding:6px 10px;border-radius:var(--d-r-row);color:var(--text);text-decoration:none}
.ni:hover{background:var(--d-hover)}.ni[aria-current]{background:var(--d-selected);color:var(--ink);font-weight:var(--w-body)}
kbd{font:var(--w-body) var(--fs-micro) var(--sans);background:var(--d-kbd-bg);border:1px solid var(--line);border-radius:4px;padding:0 5px;color:var(--muted)}
main{padding:var(--s6) var(--s7);max-width:1100px}
h1{font:var(--w-body) var(--d-fs-page)/1.1 var(--serif);color:var(--ink);margin:0}.sub{color:var(--muted);font-size:var(--d-fs-meta);margin-top:4px}
.head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--s5)}
.kick{font-size:var(--d-fs-section);letter-spacing:var(--ls-kicker);font-variant:all-small-caps;color:var(--muted);margin:var(--s5) 0 var(--s2)}
.card{background:var(--surface);border:1px solid var(--card-border);box-shadow:var(--shadow);border-radius:var(--d-r)}
.hl{padding:var(--s4) var(--s5);border-left:3px solid var(--sage)}.hl b{font:var(--w-body) 20px var(--serif);color:var(--ink)}
.row{display:flex;align-items:center;gap:var(--s3);min-height:var(--d-row-h);padding:0 var(--s4);border-top:1px solid var(--line)}.row:first-child{border-top:0}
.row:hover{background:var(--d-hover)}.row.sel{background:var(--d-selected)}
.chk{width:16px;height:16px;border:1.5px solid var(--muted);border-radius:50%;flex:none}.done .chk{background:var(--ok);border-color:var(--ok)}.done .t{color:var(--muted);text-decoration:line-through}
.t{flex:1}.m{color:var(--muted);font-size:var(--d-fs-meta)}.od{color:var(--overdue);font-size:var(--d-fs-meta);font-weight:var(--w-body)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}
.btn{font:var(--w-body) 14px var(--sans);border-radius:var(--d-r);padding:8px 14px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.btn:hover{background:var(--d-hover)}.btn:focus-visible,.ni:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.btn.primary{background:var(--action);border-color:var(--action);color:var(--on-accent)}.btn.primary:hover{filter:brightness(.94)}.btn:disabled{opacity:.45;cursor:not-allowed}
.grid{display:grid;grid-template-columns:1fr 300px;gap:var(--s5)}
.av{width:56px;height:56px;border-radius:50%;background:var(--sage-soft);color:var(--sage);display:grid;place-items:center;font:var(--w-body) 18px var(--sans)}
.facts{padding:var(--s4)}.facts div{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line);font-size:var(--d-fs-meta)}.facts div:first-child{border-top:0}
.pill{font-size:var(--fs-micro);letter-spacing:var(--ls-kicker);text-transform:uppercase;background:var(--sage-soft);color:var(--sage);border-radius:var(--r-pill);padding:2px 8px}
.log{padding:var(--s3) var(--s4);border-top:1px solid var(--line)}.log:first-child{border-top:0}.log p{margin:2px 0 0}
.empty{padding:var(--s5);color:var(--muted);text-align:center}
[hidden]{display:none!important}
@media (max-width:760px){.app{grid-template-columns:1fr}nav{display:none}main{padding:var(--s4)}.grid{grid-template-columns:1fr}}
/* Desk app additions (Linden), tokens only */
.tabs{display:flex;gap:var(--s2);margin-bottom:var(--s5);flex-wrap:wrap}.tabs a{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:var(--r-pill);padding:4px 14px;text-decoration:none;font-size:var(--d-fs-meta)}.tabs a[aria-current]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
input,textarea,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--d-r);padding:8px 10px}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.addbar{display:flex;gap:var(--s2);margin-top:var(--s3)}.addbar input{flex:1}
.row button.lnk,.lnk{background:none;border:0;color:var(--muted);font:inherit;font-size:var(--d-fs-meta);cursor:pointer;padding:2px 6px;border-radius:4px}.lnk:hover{background:var(--d-hover);color:var(--ink)}
.chk{cursor:pointer;background:none;padding:0}
.board{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(140px,1fr)) minmax(120px,.8fr);gap:var(--s3);overflow-x:auto}
.col .kick{margin-top:0}.tile{padding:var(--s3);margin-bottom:var(--s2);font-size:var(--d-fs-meta)}.tile a{color:var(--ink);font-weight:var(--w-body);text-decoration:none}
.overlay{position:fixed;inset:0;background:var(--scrim);display:grid;place-items:start center;padding-top:15vh;z-index:10}
.pop{background:var(--surface);box-shadow:var(--shadow-pop);border-radius:var(--r-card);padding:var(--s5);width:min(560px,92vw)}
.pop textarea{width:100%;min-height:80px}
.toast{position:fixed;left:var(--s5);bottom:var(--s5);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--d-r);z-index:20}
.budget{font-size:var(--d-fs-meta);color:var(--muted);margin-top:var(--s3)}.budget.over{color:var(--overdue);font-weight:var(--w-body)}
.week{display:flex;gap:4px}.week span{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-size:var(--fs-micro);cursor:pointer}.week span.on{background:var(--ok);border-color:var(--ok);color:var(--on-accent)}
.field{display:grid;gap:6px;margin-bottom:var(--s4)}.field label{color:var(--ink);font-weight:var(--w-body)}
.ph{border:1px dashed var(--line);border-radius:var(--d-r);padding:var(--s4);color:var(--muted);font-size:var(--d-fs-meta)}
a{color:var(--ink)}
.cmdk{margin-top:var(--s3);max-height:50vh;overflow:auto}.pop>input{width:100%;font-size:17px}
.cmdk .row{cursor:pointer}.cmdk .row.sel{box-shadow:inset 3px 0 0 var(--ink)}
.mwrap{position:relative;flex:1}.mwrap>input,.mwrap>textarea{width:100%}
.mention{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;box-shadow:var(--shadow-pop)}.mention .row{cursor:pointer;min-height:36px}.mention .row.sel{box-shadow:inset 3px 0 0 var(--ink)}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s2);margin-bottom:var(--s4)}
.day{display:grid;justify-items:center;gap:2px;padding:8px 4px;border:1px solid var(--line);border-radius:var(--d-r);background:var(--surface);text-decoration:none;color:var(--text)}
.day.cur{border-color:var(--ink)}.day.over,.dropzone.over{outline:2px dashed var(--focus);outline-offset:2px;background:var(--d-selected)}
.row[draggable]{cursor:grab}.row.dragging{opacity:.5}
.chk.ro{border-style:dashed;cursor:default}a.pill{text-decoration:none}
/* Sign-in (Merce 62, on Sable's tokens) */
body.signed-out nav,body.signed-out .si-bar{display:none}body.signed-out .app{grid-template-columns:1fr}body.signed-out main{max-width:none;padding:0}
.si{min-height:100vh;display:grid;place-items:center;padding:var(--s6) var(--gutter-phone, 16px);background:var(--bg)}
.si-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--card-border);box-shadow:var(--shadow);border-radius:var(--r-card);padding:var(--s6) var(--s5);font:var(--fs-body)/var(--lh-body) var(--sans);color:var(--text)}
.si-card h1{font:var(--w-body) var(--fs-title)/var(--lh-title) var(--serif);color:var(--ink);margin:0 0 var(--s3)}
.si-card p{margin:0 0 var(--s4)}.si-mark{font:var(--w-body) var(--fs-heading)/1 var(--serif);color:var(--sage);margin:0 0 var(--s5)!important}
.si-sub{font-size:var(--fs-secondary);color:var(--muted)}.si-f{display:block;font-size:var(--fs-secondary);color:var(--ink);margin-bottom:var(--s2)}
.si-card input{width:100%;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-row);background:var(--bg);color:var(--ink)}
.si-btn{display:block;width:100%;margin-top:var(--s4);padding:var(--s3);border:0;border-radius:var(--r-pill);background:var(--action);color:var(--on-accent);font:var(--w-body) var(--fs-body) var(--sans);cursor:pointer}
.si-btn:focus-visible,.si-link:focus-visible,.si-card input:focus{outline:2px solid var(--focus);outline-offset:2px}
.si-link{background:none;border:0;padding:0;color:var(--accent-ink);font:inherit;font-size:var(--fs-secondary);text-decoration:underline;cursor:pointer}.si-link:disabled{color:var(--muted);text-decoration:none;cursor:default}
.si-note{background:var(--surface-2);border-radius:var(--r-row);padding:var(--s3) var(--s4);font-size:var(--fs-secondary)}
.si-err{color:var(--accent-ink);font-size:var(--fs-secondary);margin:var(--s2) 0 0!important}
.si-bar{display:flex;justify-content:flex-end;align-items:center;gap:var(--s3);font-size:var(--fs-secondary);color:var(--muted);border-bottom:1px solid var(--line);padding:var(--s2) var(--s5);background:var(--bg)}.si-bar strong{color:var(--ink)}
/* Projects (Merce 63), tokens only */
.chip{font:inherit;font-size:var(--d-fs-meta);color:var(--muted);background:none;border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 8px;white-space:nowrap;cursor:pointer;text-decoration:none;max-width:16em;overflow:hidden;text-overflow:ellipsis}
.chip:hover{color:var(--ink);background:var(--d-hover)}.chips{display:flex;flex-wrap:wrap;gap:6px}
.ini{width:22px;height:22px;border-radius:50%;background:var(--sage-soft);color:var(--sage);display:grid;place-items:center;font:var(--w-body) var(--fs-micro) var(--sans);flex:none}
.star{color:var(--sage);padding-left:var(--s4)}.nextrow{display:flex;align-items:center}.nextrow .row{flex:1;border-top:0;padding-left:var(--s2)}
.acts{display:flex;gap:var(--s2);align-items:center}.pill-sel{border-radius:var(--r-pill);padding:4px 10px;background:var(--sage-soft);color:var(--sage);border-color:transparent;font-weight:var(--w-body)}
aside .facts select,aside .facts input{max-width:170px;padding:4px 8px}aside textarea{width:100%;min-height:90px}
.facts div{align-items:center}details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}
details.stalled>summary::after,details.donebox>summary::after{content:' ▸'}details[open].stalled>summary::after,details[open].donebox>summary::after{content:' ▾'}
.lnk.kick{display:block;padding:0}.f{display:block;margin:var(--s3) 0}.f span{display:block;font-size:var(--d-fs-meta);color:var(--muted);margin-bottom:4px}.f input,.f select{width:100%}
.pop-h{font-size:22px;margin-bottom:var(--s2)}.addbar.end{justify-content:flex-end}.toast .undo{color:var(--bg);margin-left:4px}
.nx{max-width:22em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:760px){.row{flex-wrap:wrap;padding:6px var(--s3);gap:6px var(--s2)}.nx{max-width:100%;order:5;flex-basis:100%}.head{flex-wrap:wrap;gap:var(--s3)}.addbar{flex-wrap:wrap}.chip{max-width:12em}aside .facts select,aside .facts input{max-width:60%}}
.row a.t{text-decoration:none;color:var(--ink)}.row a.t:hover{text-decoration:underline}

/* Settings > Connections (Merce 65 item 7). Layout only; Sable dresses. */
.row.conn{display:flex;align-items:center;gap:var(--s3);min-height:40px;padding-top:6px;padding-bottom:6px;width:100%;text-align:left;background:none;border:0;font:inherit;color:inherit}
.row.conn .g{width:24px;height:24px;border-radius:6px;display:inline-grid;place-items:center;flex:none;font-size:12px;font-weight:var(--w-body);background:var(--surface-2, rgba(0,0,0,.05))}
.row.conn .t{flex:1;min-width:0;overflow-wrap:anywhere}
.row.conn .m.d{display:block;margin-top:2px}
.row.conn.off{opacity:.55}
button.row.conn{cursor:pointer}
.conn-pop details{margin:8px 0}
.conn-pop summary{cursor:pointer}

/* Merce 65 section 8: Settings pinned to the sidebar foot. */
.nav-foot{margin-top:auto;display:flex;flex-direction:column;gap:2px}

/* Quick add: what was recognized (Merce 66 M7) */
.recog{min-height:1.4em;margin-top:4px;padding-left:2px}
.row:focus-visible,.row:focus{outline:2px solid var(--focus);outline-offset:-2px;background:var(--d-selected)}
.lnk kbd{margin-right:2px}
/* Phone bottom bar (Merce 59 §1, 66 M1; Sable 60 rule 7), tokens only */
.bbar{display:none}
@media (max-width:760px){
  .bbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:9;background:var(--surface-2);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}
  .bi{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;border:0;background:none;border-radius:var(--d-r-row);color:var(--text);font:var(--w-body) var(--fs-micro) var(--sans);text-decoration:none;cursor:pointer}
  .bi[aria-current]{background:var(--d-selected);color:var(--ink);font-weight:var(--w-body)}
  .bi:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
  .bi .m{font-size:var(--fs-micro)}
  main{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .toast{left:var(--s4);right:var(--s4);bottom:calc(72px + env(safe-area-inset-bottom))}
  .overlay.sheet{place-items:end center;padding-top:0}
  .overlay.sheet .pop{width:100%;border-radius:var(--r-card) var(--r-card) 0 0;max-height:85vh;overflow:auto;padding-bottom:calc(var(--s5) + env(safe-area-inset-bottom))}
  body.signed-out .bbar{display:none}
}
.btn.wide{width:100%}
.sheet .row{text-decoration:none;color:var(--ink)}
.bi .m:empty{display:none}
@media (max-width:760px){.addbar .mwrap{flex-basis:100%}}
/* Merce 66 should-fix (Linden), tokens only */
.chip.person{color:var(--ink);border-color:var(--line);padding:0 8px}
.hl-edit{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:text;text-align:left;width:100%}.hl-edit:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hl input.wide{width:100%}
.closed .kick{margin:0 0 var(--s2)}
@media (max-width:760px){.board{display:block;overflow:visible}.board .col{margin-bottom:var(--s4)}.board .col .kick{margin-top:var(--s4)}}
/* Merce 66 round 2 (Linden), tokens only */
button.ini.own{border:0;cursor:pointer}button.ini.own:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.menu{position:absolute;z-index:25;width:160px;box-shadow:var(--shadow-pop);padding:4px 0}.menu .row{width:100%;background:none;border:0;border-top:0;font:inherit;color:var(--ink);cursor:pointer;min-height:40px;text-align:left}
.handed .t,.handed .m{color:var(--muted)}.chk.ro.ok{background:var(--ok);border-color:var(--ok);border-style:solid}
.logbar select{flex:none}.whenw{position:relative;display:inline-flex}.chip.when{min-height:36px;padding:0 10px;color:var(--ink)}
.when-in{position:absolute;inset:0;opacity:0;pointer-events:none;width:100%}.when-in.show{position:static;opacity:1;pointer-events:auto}
.inl{width:100%}.inl-btn{background:none;border:0;padding:0;font:inherit;color:var(--ink);text-align:left;cursor:text}
@media (max-width:760px){.logbar .mwrap{order:-1}}
/* ===== Notes (Sable 67 visual pass, NOTES LAYER tokens) ===== */
.sw{width:36px;height:20px;border-radius:999px;background:var(--line);position:relative;flex:none;border:0;padding:0;cursor:pointer;vertical-align:middle}
.sw.on{background:var(--ok)}.sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);transition:left .15s}
.sw.on::after{left:18px}.sw:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.shr{display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.btn.sm{padding:2px 10px;font-size:var(--d-fs-meta)}.btn[aria-pressed=true]{background:var(--d-selected)}
a.row{text-decoration:none;color:inherit}
.hide-s{}
.ngrid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--s7)}
.npage{max-width:var(--n-page-w);width:100%;margin:0 auto;padding:var(--s5) 0 var(--s8)}
.npage .crumb{font-size:var(--d-fs-meta);color:var(--muted)}.npage .crumb a{color:var(--muted);text-decoration:none}.npage .crumb a:hover{text-decoration:underline}
.npage h1{font:var(--w-body) var(--n-fs-title)/var(--n-lh-title) var(--serif);margin:var(--s3) 0 var(--s2);letter-spacing:-.005em;outline:0}
.npage .meta{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;color:var(--muted);font-size:var(--d-fs-meta);padding-bottom:var(--s4);margin-bottom:var(--s5);border-bottom:1px solid var(--line)}
.meta .acts2{margin-left:auto;display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.bwrapr{position:relative}.bwrapr.nest{margin-left:calc(9px + (var(--ind) - 1) * var(--n-indent));padding-left:calc(var(--n-indent) - 9px);border-left:1px solid var(--n-guide)}
.bhandle{position:absolute;left:-30px;top:4px;opacity:0;border:0;background:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0 4px;border-radius:4px;line-height:1.4}
.bwrapr:hover>.bhandle,.bhandle:focus-visible{opacity:1}.bhandle:hover{background:var(--d-hover)}
.blk{font-size:var(--n-fs-body);line-height:var(--n-lh-body);color:var(--text);margin:var(--n-block-gap) 0;position:relative;padding-left:22px;outline:0;min-height:1.7em;white-space:pre-wrap;word-wrap:break-word}
.blk::before{content:"";position:absolute;left:6px;top:.78em;width:5px;height:5px;border-radius:50%;background:var(--muted)}
.blk.p::before,.blk.todo::before{display:none}.blk.p{padding-left:0}.blk.todo{padding-left:6px;flex:1}
.todo-wrap{display:flex;align-items:flex-start;gap:4px}.todo-wrap input{margin-top:.55em}.todo-wrap input:checked+.blk{color:var(--muted);text-decoration:line-through}
.blk[data-ph]:empty::after{content:attr(data-ph);color:var(--muted)}
.nest>.blk,.blk.nest{}
.bh{font:var(--w-body) var(--n-fs-h)/1.3 var(--serif);color:var(--ink);margin:var(--s6) 0 var(--s2);outline:0;min-height:1.3em}
.ln{color:var(--n-link);text-decoration:underline;text-decoration-color:var(--n-link-line);text-underline-offset:3px;text-decoration-thickness:1px;cursor:pointer}
.emb{border-left:3px solid var(--n-embed-bar);background:var(--n-embed-bg);padding:10px 14px;border-radius:8px;font-size:var(--fs-secondary);line-height:1.5;color:var(--n-embed-ink);margin:var(--s2) 0}
.emb small{display:block;font-size:var(--d-fs-meta);margin-bottom:2px}.emb small a{color:inherit}
.subp{text-decoration:none;display:flex;align-items:center;gap:10px;background:var(--n-subpage-bg);border-radius:var(--d-r-row);padding:10px 14px;margin:var(--s2) 0;color:var(--ink);font-weight:var(--w-body)}
.subp span.m{font-weight:var(--w-body);margin-left:auto}.subp .ic{width:18px;height:22px;border:1.5px solid var(--muted);border-radius:3px;flex:none}
.addblk{border:0;background:none;color:var(--muted);font:inherit;font-size:var(--d-fs-meta);padding:6px 0;cursor:pointer;margin-top:var(--s3)}.addblk:hover{color:var(--ink)}
.rail{padding-top:var(--s7)}
.side{position:sticky;top:var(--s5)}.side .kick:first-child{margin-top:0}
.side .row{border-top:0;min-height:34px;padding:0 var(--s2);border-radius:var(--d-r-row)}
.links-below{margin-top:var(--s6);max-width:520px}.links-below .side{position:static}
.npanel .phead,.nb-panel .phead{display:flex;justify-content:space-between;align-items:center}
.npanel textarea{width:100%;min-height:64px;margin-top:var(--s3)}.npanel .addbar.end,.addbar.end{justify-content:flex-end}
.cmt{padding:var(--s2) 0;border-top:1px solid var(--line)}.cmt p{margin:2px 0}
.ver{border-top:1px solid var(--line);padding:var(--s2) 0}.ver summary{cursor:pointer}.vtext{white-space:pre-wrap;font-size:var(--d-fs-meta);color:var(--text);max-height:200px;overflow:auto}
.picker{position:absolute;width:300px;z-index:40;padding:6px;box-shadow:var(--shadow-pop)}.picker .row{min-height:34px;border:0;border-radius:var(--d-r-row);cursor:pointer}
.picker .row.sel{background:var(--d-selected)}.pk-foot{padding:6px 12px}
.menu{position:absolute;z-index:40;min-width:180px;padding:6px}.menu .row{width:100%;border:0;background:none;font:inherit;text-align:left;cursor:pointer;min-height:34px;border-radius:var(--d-r-row)}
/* board */
.nb-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;border:1px solid var(--line);border-radius:var(--d-r);overflow:hidden;height:calc(100vh - 190px);min-height:440px}
.nb-wrap:has(.nb-panel[hidden]){grid-template-columns:minmax(0,1fr)}
.nb-canvas{position:relative;overflow:hidden;background:var(--b-canvas);background-image:radial-gradient(var(--b-dot) 1.2px,transparent 1.2px);background-size:var(--b-dot-gap) var(--b-dot-gap);touch-action:none;cursor:grab;outline:0}
.nb-canvas.panning{cursor:grabbing}
.nb-layer{position:absolute;left:0;top:0;transform-origin:0 0}
.nb-svg{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none;color:var(--b-arrow)}
.nb-arrow{stroke:var(--b-arrow);stroke-width:var(--b-arrow-w);fill:none}.nb-arrow.ghost{stroke:var(--b-ghost);stroke-dasharray:5 4}
.nb-hit{stroke:transparent;stroke-width:12;fill:none;pointer-events:stroke;cursor:pointer}
.nb-item{position:absolute;user-select:none}
.nb-sec{background:var(--b-sec-fill);border:1px solid var(--b-sec-line);border-radius:var(--b-sec-r)}.nb-sec.t2{background:var(--b-sec-fill-2);border-color:var(--b-sec-line-2)}
.nb-sec .sl{position:absolute;top:10px;left:14px;font:var(--w-body) var(--d-fs-meta) var(--sans);color:var(--ink)}
.nb-rs{position:absolute;right:2px;bottom:2px;width:12px;height:12px;cursor:nwse-resize;border-right:2px solid var(--b-sec-line);border-bottom:2px solid var(--b-sec-line);border-radius:0 0 6px 0}
.nb-text{font:var(--w-body) 18px var(--serif);color:var(--ink);white-space:nowrap}
.nb-card{width:var(--b-card-w);min-height:72px;background:var(--b-card);border:1px solid var(--b-card-line);box-shadow:var(--b-card-shadow);border-radius:var(--b-card-r);padding:10px 12px 12px;font-size:var(--d-fs-meta);color:var(--muted);cursor:pointer}
.nb-card b{display:block;font:var(--w-body) 14px/1.35 var(--sans);color:var(--ink);margin:2px 0 4px}
.nb-card .k{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--ls-kicker);color:var(--muted)}
.nb-card .ex{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nb-card.priv b{color:var(--muted);font-style:italic}
.nb-item.sel{outline:2px solid var(--b-select);outline-offset:2px}
.nb-hd{position:absolute;width:8px;height:8px;background:var(--b-card);border:1.5px solid var(--b-select);border-radius:2px}
.nb-hd.tl{left:-6px;top:-6px}.nb-hd.tr{right:-6px;top:-6px}.nb-hd.bl{left:-6px;bottom:-6px}.nb-hd.br{right:-6px;bottom:-6px}
.nb-ghost{background:transparent;border:1.5px dashed var(--b-ghost);box-shadow:none;cursor:default}.gacts{display:flex;gap:4px;margin-top:4px}
.nb-alab{position:absolute;transform:translate(-50%,-50%);font-size:12px;color:var(--b-label-ink);background:var(--b-label-bg);padding:1px 8px;border-radius:var(--r-pill);border:1px solid var(--line);white-space:nowrap}
.nb-tbar{position:absolute;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:2px;background:var(--b-chrome);border:1px solid var(--b-chrome-line);border-radius:var(--d-r);padding:3px;box-shadow:var(--b-card-shadow);z-index:2}
.nb-tbar button,.nb-zoom button{white-space:nowrap;font:var(--w-body) 13px var(--sans);border:0;background:none;color:var(--text);padding:5px 10px;border-radius:6px;cursor:pointer}
.nb-tbar button[aria-pressed=true]{background:var(--d-selected);color:var(--ink)}.nb-tbar button:hover,.nb-zoom button:hover{background:var(--d-hover)}
.nb-hint{position:absolute;top:56px;left:50%;transform:translateX(-50%);z-index:2}
.nb-zoom{position:absolute;left:12px;bottom:12px;display:flex;align-items:center;background:var(--b-chrome);border:1px solid var(--b-chrome-line);border-radius:var(--d-r);padding:2px;font-size:var(--d-fs-meta);color:var(--muted);z-index:2}
.nb-zoom .zl{padding:0 6px;min-width:44px;text-align:center}
.nb-mini{position:absolute;right:12px;bottom:12px;width:120px;height:72px;background:var(--b-chrome);border:1px solid var(--b-chrome-line);border-radius:8px;overflow:hidden;z-index:2;pointer-events:none}
.nb-mini i{position:absolute;background:var(--line);border-radius:1px}.nb-mini span{position:absolute;border:1.5px solid var(--b-select);border-radius:3px}
.nb-mini:empty{display:none}
.nb-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;max-width:280px}
.nb-panel{background:var(--surface);border-left:1px solid var(--line);padding:var(--s5);overflow:auto}
.nb-panel h2{font:var(--w-body) 24px/1.15 var(--serif);color:var(--ink);margin:6px 0 var(--s3)}.nb-panel .blk{font-size:15px}
.crumbl{text-decoration:none}
@media (max-width:760px){
  .ngrid{grid-template-columns:1fr;gap:var(--s4)}.npage{padding-top:var(--s2)}.npage h1{font-size:28px}.rail{padding-top:0}.side{position:static}
  .bhandle{opacity:.6;left:auto;right:-4px;top:2px}.bwrapr{padding-right:22px}
  .meta .acts2{margin-left:0}
  .nb-wrap{grid-template-columns:1fr!important;height:auto}.nb-canvas{height:440px}.nb-panel{border-left:0;border-top:1px solid var(--line)}
  .nb-tbar,.nb-mini,.nb-hint{display:none}.hide-s{display:none}
}
.nb-item.editing,.nb-alab.editing,.nb-sec .sl.editing{outline:2px solid var(--b-select);outline-offset:2px;border-radius:4px;cursor:text;user-select:text;min-width:40px}
.nb-alab.editing{border-radius:var(--r-pill);min-width:56px;text-align:center}
.nb-text.editing{min-width:120px}
.nb-item[data-ph]:empty::before,.nb-alab[data-ph]:empty::before{content:attr(data-ph);color:var(--muted)}
.nb-alab[data-edit]{cursor:text;pointer-events:auto}
/* Merce 68 + Hale N6: private targets are calm, never a dead link */
.ln-priv{color:var(--muted);font-style:italic;cursor:default}
.subp.priv{color:var(--muted);font-weight:var(--w-body);cursor:default}.subp.priv .ic{border-style:dashed}
.npage.calm{padding-top:var(--s7)}.subp.priv.big{font:var(--w-body) var(--n-fs-h)/1.3 var(--serif);padding:16px 18px}
.nb-item:focus{outline:none}.nb-item:focus-visible,.nb-item.sel{outline:2px solid var(--b-select);outline-offset:2px}
.picker .row kbd,.cmdk .row kbd{margin-left:6px}

/* ===== SLEEK (Sable 70): one weight; bold only on 12px section labels. Ghost buttons, one soft primary. */
body{font-weight:var(--w-body)}
b,strong{font-weight:var(--w-body)}
.grp,.kick,.nav-sec>summary .lbl{font-size:12px;font-weight:var(--w-label);color:var(--d-label-ink);letter-spacing:.02em;text-transform:none;font-variant:normal}
.btn{height:var(--btn-h);padding:0 12px;font:var(--w-body) var(--btn-fs) var(--sans);border-radius:var(--btn-r);background:var(--btn-bg);color:var(--btn-ink);border:1px solid var(--btn-line);display:inline-flex;align-items:center;gap:6px}
.btn:hover{background:var(--btn-hover)}
.btn.primary{background:var(--btn-primary-bg);color:var(--btn-primary-ink);border-color:transparent}
.btn.primary:hover{filter:none;background:color-mix(in srgb,var(--btn-primary-bg) 80%,var(--accent) 20%)}
nav[aria-label=Desk]{background:var(--d-sidebar-bg)}
.ni{color:var(--d-nav-ink);font-weight:var(--w-body)}.ni[aria-current]{font-weight:var(--w-body)}
.brand{font-weight:var(--w-body)}
h1,.npage h1,.bh,.nb-card b,.panel h2,.nb-panel h2{font-weight:var(--w-heading)}
.npage h1{font-family:var(--n-font-note);font-size:var(--n-fs-title)}
.npage,.blk{font-family:var(--n-font-note)}
.subp{font-weight:var(--w-body)}
.nb-card b{font-weight:var(--w-body);font-size:14px}
/* sidebar sections (Merce F1): collapsible, remembered */
.nav-sec{margin-top:var(--s3)}
.nav-sec>summary{list-style:none;display:flex;align-items:center;gap:6px;padding:4px 10px;cursor:pointer;border-radius:var(--d-r-row)}
.nav-sec>summary::-webkit-details-marker{display:none}
.nav-sec>summary .chev{width:10px;color:var(--d-label-ink);transition:transform .15s;font-size:10px}
.nav-sec[open]>summary .chev{transform:rotate(90deg)}
.nav-sec>summary:hover{background:var(--d-hover)}
.nav-sec .hint{display:block;padding:2px 10px 4px 26px;font-style:italic;font-size:12.5px;color:var(--d-hint-ink)}
.nav-sec .ni{padding-left:26px}
.nav-sec .ni.child{padding-left:38px;font-size:13px;color:var(--d-row-sub)}
.cap-q{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border:1px solid var(--line);border-radius:var(--d-r);color:var(--muted);font:var(--w-body) 13px var(--sans);background:transparent;cursor:text;margin-top:var(--s3);text-decoration:none}
.cap-q:hover{color:var(--text)}
/* person panel (Merce 70 F4, Sable person card) */
.ppanel{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:100vw;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-pop);padding:var(--s5);overflow:auto;z-index:30}
.ppanel .phead{display:flex;justify-content:space-between;align-items:center}
.pcard{display:flex;gap:var(--s3);align-items:center;margin:var(--s3) 0}.pcard h2{font:var(--w-body) 26px/1.15 var(--sans);color:var(--ink);margin:0}
.pacts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--s3)}
.pfact{display:grid;grid-template-columns:80px 1fr auto;gap:8px;align-items:center;padding:5px 0;border-top:1px solid var(--line);font-size:13.5px}.pfact a{color:var(--ink)}
.ppanel .row{min-height:32px;border:0;padding:0 4px}
.pmini{position:absolute;z-index:40;width:280px;padding:var(--s3)}.pmini b{display:block;margin-bottom:4px;font-weight:var(--w-body);font-size:15px}
@media (max-width:760px){.ppanel{width:100vw;top:auto;height:85vh;border-left:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0}}
/* Notes browse (Craft) */
.ntools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:var(--s4)}.ntools .tabs{margin:0}.ntools .grow{flex:1}
.ntools select,.nsearch{height:var(--btn-h);padding:0 10px;font-size:13px}.nsearch{width:180px}
.seg{display:inline-flex;gap:2px}
.nhead,.nrow{display:grid;grid-template-columns:minmax(0,1fr) 120px 120px;gap:var(--s3);align-items:center}
.nhead{font-size:12px;color:var(--d-row-sub);padding:0 10px 6px 42px;border-bottom:1px solid var(--line)}
.ngroup{font-size:13px;color:var(--d-group-ink);margin:var(--s5) 0 6px 10px}
.nrow{grid-template-columns:22px minmax(0,1fr) 120px 120px;padding:8px 10px;border-radius:var(--d-r-row);text-decoration:none;color:var(--text)}
.nrow:hover{background:var(--d-hover)}.nrow .ic{width:14px;height:17px;border:1.3px solid var(--muted);border-radius:3px}
.nname{display:flex;flex-direction:column;min-width:0}.nt{color:var(--ink);font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nsub,.ndate{font-size:12.5px;color:var(--d-row-sub)}
.ngrid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s3)}
.ncard{display:flex;flex-direction:column;gap:6px;padding:var(--s4);border:1px solid var(--line);border-radius:var(--d-r);text-decoration:none;color:var(--text);min-height:110px}
.ncard:hover{background:var(--d-hover)}.ncard .nx{font-size:13px;color:var(--d-row-sub);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:760px){.nrow{grid-template-columns:22px minmax(0,1fr) 90px}.nsearch{width:100%}}
.npage h1[data-ph]:empty::before{content:attr(data-ph);color:var(--muted)}
.goal-field{display:flex;flex-direction:column;gap:3px}.goal-field input{width:100%}.hint-inline{font-size:12px}
.svcgrp{padding:4px 0 6px}.svcgrp>.m{display:block;font-size:12px;margin:4px 0 2px}.svc{display:flex;flex-direction:column;padding:5px 0;border-top:1px solid var(--line)}.svc .t{color:var(--ink);font-size:14px}.svc .m{font-size:12.5px}
