:root{--paper:#F6F4EE;--sheet:#FFFEFB;--ink:#1F2622;--soft:#5D665F;--rule:#DDD9CE;--indigo:#2F5D46;--margin:#B5473B;--r:6px;--serif:"Iowan Old Style","Charter","Cambria",Georgia,serif;--sans:"Orchard Sans","Segoe UI",system-ui,-apple-system,Roboto,sans-serif}
@media (prefers-color-scheme:dark){:root{--paper:#121714;--sheet:#1A211D;--ink:#ECEDE6;--soft:#9BA79F;--rule:#2B352E;--indigo:#86BFA0;--margin:#E58A7E}}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.6 var(--serif);padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
h1,h2{line-height:1.2;font-weight:500}h1{font-size:clamp(1.8rem,5vw,3rem);margin:.2em 0}h2{font-size:1.25rem}
h2 small{font:400 .8rem var(--sans);color:var(--soft);margin-left:.6em}
a{color:inherit}button,.btn,nav a{font-family:var(--sans)}
:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}[tabindex="-1"]:focus{outline:0}
.wrap{max-width:68rem;margin:0 auto;padding:1rem}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--sheet);padding:.5rem;z-index:9}
.brand{font:500 1.3rem var(--serif);text-decoration:none;border-bottom:2px solid var(--margin)}
.btn{display:inline-flex;align-items:center;min-height:44px;padding:0 1.1rem;border-radius:var(--r);background:var(--indigo);color:#fff;border:0;text-decoration:none;font-size:.95rem;}
.btn.ghost{background:none;color:var(--indigo);border:1px solid var(--rule)}
.icon-btn{min-height:44px;min-width:44px;background:none;border:1px solid var(--rule);border-radius:var(--r);color:var(--ink)}
.loading,.empty{padding:3rem 1rem;text-align:center;color:var(--soft)}
.pub-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}
.pub-head nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.pub-head nav a:not(.btn){text-decoration:none;color:var(--soft)}
.pub-foot{color:var(--soft);font-size:.9rem}
.hero{padding-top:3rem}.lede{max-width:34rem;color:var(--soft);font-size:1.15rem}
.flow{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:2.5rem 0;font-family:var(--sans)}
.flow li{padding:.4rem .9rem;border-left:2px solid var(--margin);background:var(--sheet)}
.shell{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto 1fr;min-height:100dvh}
.topbar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--paper);z-index:5}
.status{margin-left:auto;font:.8rem var(--sans);color:var(--soft)}
.side{display:none;flex-direction:column;padding:.5rem;border-bottom:1px solid var(--rule)}
.side.open{display:flex}.side a{padding:.75rem 1rem;text-decoration:none;border-radius:var(--r);min-height:44px}
.side a.active{background:var(--sheet);box-shadow:inset 3px 0 var(--margin)}
.work{padding:1rem;max-width:64rem;width:100%}
.resume{display:block;padding:1.25rem 1.25rem 1.25rem 1.5rem;background:var(--sheet);border:1px solid var(--rule);border-left:3px solid var(--margin);text-decoration:none;margin:1rem 0 2rem}
.resume span{display:block;color:var(--soft);font:.85rem var(--sans)}.resume strong{font:500 1.4rem var(--serif)}
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}
.nb{display:flex;min-height:84px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);text-decoration:none;overflow:hidden}
.nb-spine{display:grid;place-items:center;width:3.4rem;background:var(--cover);font-size:1.4rem}
.nb-body{display:flex;flex-direction:column;justify-content:center;padding:.75rem 1rem}.nb-body span{font:.82rem var(--sans);color:var(--soft)}
.inbox{list-style:none;padding:0;margin:0 0 1rem}.inbox li{padding:.6rem 0;border-bottom:1px solid var(--rule)}
.inbox b{font:600 .8rem var(--sans);color:var(--indigo);margin-right:.5rem}
@media (min-width:60rem){.shell{grid-template-columns:15rem 1fr;grid-template-rows:auto 1fr}.topbar{grid-column:1/-1}.menu-btn{display:none}
.side{display:flex;border:0;border-right:1px solid var(--rule);position:sticky;top:61px;height:calc(100dvh - 61px)}.work{padding:2rem}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.nbview{overflow-x:clip}.nbtitle{font-size:1.5rem;margin:.3rem 0 1rem}
.nbbody{display:grid;gap:1rem}.nbmain{min-width:0}
.stack{position:relative;isolation:isolate;max-width:44rem;margin:0 auto}
.peek{position:absolute;inset:0;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);z-index:-1}
.peek-prev{transform:translate(-12px,5px) rotate(-.8deg)}.peek-next{transform:translate(12px,5px) rotate(.8deg)}
.sheet{position:relative;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:1.2rem 1.2rem 2rem 2.6rem;min-height:55dvh}
.sheet::before{content:"";position:absolute;left:1.8rem;top:0;bottom:0;border-left:1px solid var(--margin);opacity:.55}
.sheet-head{display:flex;justify-content:space-between;font:.78rem var(--sans);color:var(--soft);letter-spacing:.04em;text-transform:uppercase;margin-bottom:1rem}
.sheet-title{width:100%;border:0;background:none;color:var(--ink);font:500 1.7rem var(--serif);padding:0 0 .6rem;margin-bottom:.4rem;border-bottom:1px solid var(--rule)}
.paper-lined .blocks{background-image:repeating-linear-gradient(transparent 0 calc(2rem - 1px),var(--rule) calc(2rem - 1px) 2rem)}
.paper-grid .blocks{background-size:2rem 2rem;background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px)}
.paper-dot .blocks{background-size:2rem 2rem;background-image:radial-gradient(var(--soft) 1px,transparent 1.2px);background-position:0 1rem}
.turn-next{animation:turnNext .22s ease-out}.turn-prev{animation:turnPrev .22s ease-out}
@keyframes turnNext{from{opacity:0;transform:translateX(28px)}}@keyframes turnPrev{from{opacity:0;transform:translateX(-28px)}}
.pagenav{position:sticky;bottom:0;display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.7rem 0;background:var(--paper);font-family:var(--sans)}
.menu{position:relative}.menu summary{display:grid;place-items:center;list-style:none;padding:0 .8rem;font:.95rem var(--sans)}
.menu-pop{position:absolute;right:0;bottom:calc(100% + 6px);z-index:6;width:15rem;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:.3rem;display:flex;flex-direction:column}
.menu-item{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:0 .8rem;background:none;border:0;color:var(--ink);font:.95rem var(--sans);text-align:left;border-radius:4px;}
.menu-item:hover{background:var(--paper)}select,input[type=search],.dlg input{min-height:40px;font:.95rem var(--sans);border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);padding:0 .6rem}
.plist-wrap{display:flex;flex-direction:column;gap:.6rem;font-family:var(--sans)}
.plist{list-style:none;margin:0;padding:0}.prow{display:flex;gap:.3rem;align-items:center;border-bottom:1px solid var(--rule);padding:.2rem 0}
.plink{flex:1;min-height:44px;text-align:left;background:none;border:0;color:var(--ink);font:.95rem var(--sans);}.plink[aria-current=page]{font-weight:600;box-shadow:inset 3px 0 var(--margin);padding-left:.6rem}
.dlg{border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);width:min(26rem,92vw)}
.dlg form{display:flex;flex-direction:column;gap:.4rem;font-family:var(--sans)}.dlg-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.8rem}
.swatches{display:flex;gap:.6rem;margin-top:.6rem}.swatch{width:44px;height:44px;border-radius:50%;border:2px solid transparent;}.swatch[aria-pressed=true]{border-color:var(--ink)}
@media (min-width:60rem){.nbbody{grid-template-columns:1fr 18rem;align-items:start}.nbmain{grid-column:1}}
.editor{position:relative}.blocks{min-height:40dvh;background-attachment:local;background-color:transparent}
.etool{position:sticky;top:61px;z-index:4;display:flex;align-items:center;gap:.2rem;margin:0 0 .8rem;padding:.2rem;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);width:max-content;max-width:100%;overflow-x:auto}
.etb{min-width:44px;min-height:44px;background:none;border:0;border-radius:4px;color:var(--ink);font:1rem var(--sans);}.etb:hover:not(:disabled){background:var(--paper)}.etb:disabled{opacity:.35}
.sep{width:1px;height:1.6rem;background:var(--rule);margin:0 .2rem}
.brow{position:relative;display:flex;align-items:flex-start;gap:.5rem}
.cell{flex:1;min-width:0;outline:0;font-size:1.08rem;line-height:2rem;overflow-wrap:anywhere;margin:0}
.cell:empty::before{content:attr(data-ph);color:var(--soft);opacity:0;pointer-events:none}.cell:empty:focus::before{opacity:.6}
.t-h1{font:500 1.6rem/2rem var(--serif)}.t-h2{font:500 1.3rem/2rem var(--serif)}
.t-quote{border-left:3px solid var(--margin);padding-left:.9rem;font-style:italic}
.t-callout{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:.3rem .8rem}
.t-code{font:.95rem/2rem ui-monospace,Menlo,monospace;background:var(--paper);border-radius:var(--r);padding:0 .8rem;white-space:pre-wrap}
.t-hr{flex:1;height:0;border:0;border-top:1px solid var(--ink);opacity:.5;margin:1rem 0}.t-hr:focus{outline:2px solid var(--indigo);opacity:1}
.cell.done{text-decoration:line-through;color:var(--soft)}
.chk{width:1.2rem;height:1.2rem;margin:.4rem .1rem 0;accent-color:var(--indigo)}.mark{width:1.4rem;line-height:2rem;color:var(--soft)}
.cell a{color:var(--indigo)}
.bmenu{position:absolute;left:-2.5rem;top:-.1rem}.bmenu summary{display:grid;place-items:center;width:36px;height:36px;list-style:none;color:var(--soft);opacity:.4;border-radius:4px}
.brow:hover .bmenu summary,.bmenu[open] summary,.bmenu summary:focus-visible{opacity:1}.bmenu .menu-pop{bottom:auto;top:100%;left:0;right:auto}
.bm{position:absolute;left:0;top:100%;z-index:6;width:min(18rem,100%);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:.3rem;max-height:16rem;overflow:auto}
.fab .bm{position:static;border:0;max-height:50dvh;width:100%;padding:0}.bm-list{list-style:none;margin:0;padding:0}
.bm [aria-selected=true] .menu-item,.bm .menu-item:hover{background:var(--paper)}.menu-item small{color:var(--soft);font-size:.75rem}
.fab{position:sticky;bottom:4.6rem;display:flex;justify-content:flex-end;height:0;overflow:visible}
.fab summary{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--indigo);color:#fff;font:1.6rem var(--sans);list-style:none;transform:translateY(-100%)}
.fab .menu-pop{width:17rem;bottom:calc(100% + 4px);right:0;transform:translateY(-100%);margin-bottom:56px}
@media (min-width:60rem){.fab{bottom:5.2rem}}
.sub{color:var(--soft);font-family:var(--sans);margin:.2rem 0 1rem}.row.filters{margin:.5rem 0}
.clips{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));margin-top:1rem}
.clip{display:flex;flex-direction:column;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;font-family:var(--sans)}
.clip-media img{display:block;width:100%;max-height:14rem;object-fit:cover}.clip-body{padding:.9rem 1rem;display:flex;flex-direction:column;gap:.4rem}
.clip-kind{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--soft)}.clip h3{margin:0;font:500 1.1rem var(--serif)}
.clip-text{margin:0;font:1rem/1.5 var(--serif);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.clip-meta{margin:0;font-size:.8rem;color:var(--soft)}
.tags{display:flex;flex-wrap:wrap;gap:.3rem;list-style:none;margin:0;padding:0}.tags li{font-size:.75rem;padding:.1rem .6rem;border:1px solid var(--rule);border-radius:99px}
.clip-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.t-card{flex:1;margin:.4rem 0;outline:0}.t-card:focus-visible{outline:2px solid var(--indigo)}
.qc{width:min(30rem,94vw)}.qc form{gap:.6rem}.qc-tabs,.chips{display:flex;flex-wrap:wrap;gap:.4rem}
.qc-tab,.chip{min-height:44px;padding:0 .9rem;border:1px solid var(--rule);border-radius:99px;background:none;color:var(--ink);font:.9rem var(--sans);}
.qc-tab[aria-pressed=true],.chip[aria-pressed=true]{background:var(--indigo);border-color:var(--indigo);color:#fff}
.qc-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--soft)}.qc-field textarea,.qc-field input[type=text]{width:100%;font:1rem var(--sans);border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);color:var(--ink);padding:.5rem .6rem}
.qc-field input[type=text]{min-height:44px}.qc-err{color:var(--margin);min-height:1.2em;margin:0;font-size:.9rem}
.topbar .btn{margin-left:.2rem}
a.chip{display:inline-flex;align-items:center;text-decoration:none}
.tpl details{font:.9rem var(--sans);color:var(--soft)}.tpl summary{min-height:32px;display:flex;align-items:center}
.tpl-pages{margin:.2rem 0 .4rem;padding-left:1.3rem}.ut-row{display:flex;flex-direction:column;gap:.4rem}.ut-row[hidden]{display:none}
[hidden]{display:none!important}
.ink-dlg{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--paper);color:var(--ink);overscroll-behavior:contain}
.ink-dlg[open]{display:flex;flex-direction:column}
.ink-top{display:flex;align-items:center;gap:.3rem;padding:.4rem .6rem;padding-top:calc(.4rem + env(safe-area-inset-top));border-bottom:1px solid var(--rule);font-family:var(--sans)}.grow{flex:1}
.ink-stage{flex:1;overflow:auto;padding:.6rem;overscroll-behavior:contain}
.ink-paper{width:min(100%,56rem);margin:0 auto;background:#fff;border:1px solid var(--rule);border-radius:var(--r)}
.ink-canvas{display:block;width:100%;cursor:crosshair}
.ink-dock{display:flex;flex-direction:column;gap:.3rem;border-top:1px solid var(--rule);padding:.4rem .6rem calc(.4rem + env(safe-area-inset-bottom));font-family:var(--sans)}
.ink-row{display:flex;align-items:center;gap:.4rem;overflow-x:auto}.ink-row .etb{flex:none}
.ink-dock .swatch{width:36px;height:36px;flex:none}.ink-dock label{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--soft);flex:none}.ink-dock input[type=range]{width:6.5rem}
.etb[aria-pressed=true]{background:var(--indigo);color:#fff}
.ink-preview{position:relative;background:#fff;border:1px solid var(--rule);border-radius:var(--r);overflow:hidden}.ink-preview-canvas{display:block;width:100%}
.ink-edit{position:absolute;right:.5rem;bottom:.5rem;background:var(--sheet)}.clip .ink-preview{border:0;border-radius:0}
.pdfview{display:flex;flex-direction:column;height:calc(100dvh - 5.2rem);font-family:var(--sans)}
.pdf-bar{display:flex;align-items:center;gap:.25rem;overflow-x:auto;padding:.2rem 0;border-bottom:1px solid var(--rule)}.pdf-bar>*{flex:none}
.pdf-name{max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-pg{width:3.4rem;min-height:40px;text-align:center;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink)}
.pdf-zl{min-width:3rem;text-align:center;font-size:.85rem}.pdf-msg{font-size:.85rem;color:var(--soft)}a.etb{display:inline-grid;place-items:center;text-decoration:none}
.pdf-panel{border-bottom:1px solid var(--rule);padding:.5rem 0;max-height:38dvh;overflow:auto}.pdf-panel .plink{display:block;width:100%}
.pdf-stage{position:relative;flex:1;overflow:auto;padding:12px;background:var(--rule);overscroll-behavior:contain;outline:0}
.pdf-page{position:relative;margin:0 auto 12px;background:#fff;overflow:hidden}
.pdf-cv,.pdf-ann{position:absolute;left:0;top:0;width:100%;height:100%}.pdf-ann{z-index:1;pointer-events:none}
.pdf-stage:not([data-tool=read]) .pdf-ann{pointer-events:auto;touch-action:none;cursor:crosshair}
.pdf-hits{position:absolute;inset:0;pointer-events:none;z-index:1}.pdf-hit{position:absolute;background:rgba(255,200,0,.35);outline:1px solid rgba(201,138,18,.8)}
.textLayer{position:absolute;inset:0;overflow:clip;line-height:1;z-index:2;pointer-events:none;transform-origin:0 0}.pdf-stage[data-tool=read] .textLayer{pointer-events:auto}
.textLayer span,.textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0}.textLayer ::selection{background:rgba(46,63,143,.3)}
.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;user-select:none}
.pdf-notes{position:absolute;inset:0;pointer-events:none;z-index:3}.pdf-notes button{position:absolute;pointer-events:auto;}
.pdf-note{min-width:36px;min-height:36px;background:none;border:0;font-size:1.3rem}.pdf-text{max-width:60%;background:rgba(255,255,255,.85);border:1px dashed var(--indigo);padding:.1rem .35rem;font:14px/1.3 var(--sans);text-align:left}
@media (min-width:60rem){.pdfview{height:calc(100dvh - 61px - 4rem)}.pdf-name{max-width:16rem}}
.ai-form{display:grid;gap:.7rem;max-width:40rem;margin:1rem 0}.ai-form .two{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.qc-field select{min-height:44px}.ai-conn{max-width:40rem;margin:1rem 0;font-family:var(--sans)}.ai-conn summary{min-height:44px;display:flex;align-items:center}
.ai-conn input{width:100%;margin:.4rem 0}.ai-title{width:100%;font:500 1.8rem var(--serif);border:0;border-bottom:1px solid var(--rule);background:none;color:var(--ink);padding:.3rem 0}
.ai-ch{display:flex;flex-direction:column;gap:.6rem;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:1rem;margin:1rem 0}.ai-ch h3{margin:0;font-family:var(--sans);font-size:.85rem;color:var(--soft);text-transform:uppercase;letter-spacing:.05em}
.ai-ch textarea{width:100%;font:1.05rem/1.7 var(--serif);border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);color:var(--ink);padding:.6rem}.ai-tone{display:flex;align-items:center;gap:.4rem;font:.9rem var(--sans)}
@media (max-width:30rem){.ai-form .two{grid-template-columns:1fr}}
.results{list-style:none;margin:0 0 1rem;padding:0}.results li{border-bottom:1px solid var(--rule)}
.results a{display:flex;flex-direction:column;gap:.1rem;padding:.7rem .2rem;text-decoration:none;min-height:44px;font-family:var(--sans)}.results a:hover{background:var(--sheet)}
.results span{font-size:.85rem;color:var(--soft)}.results strong{font-weight:500;font-family:var(--serif);font-size:1.05rem}
.sheet-tags{margin:0 0 .6rem}.conn{max-width:44rem;margin:1rem auto 0}.conn h2{font-size:1rem}
.cmd{width:min(34rem,94vw);padding:.6rem}.cmd>input[type=search]{width:100%;min-height:48px;font-size:1.05rem}
.cmd-list{list-style:none;margin:.4rem 0 0;padding:0;max-height:55dvh;overflow:auto;font-family:var(--sans)}
.cmd-item{display:flex;justify-content:space-between;gap:1rem;width:100%;min-height:44px;align-items:center;padding:0 .7rem;background:none;border:0;border-radius:4px;color:var(--ink);font:.95rem var(--sans);text-align:left;}
.cmd-item small{color:var(--soft)}.cmd-list [aria-selected=true] .cmd-item,.cmd-item:hover{background:var(--paper)}
.map{display:block;width:100%;height:auto;max-height:70dvh;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r)}
.edge{stroke:var(--soft);stroke-width:1.5}.edge.tag{stroke-dasharray:5 4;opacity:.55}
.node{touch-action:none}.node text{font:12px var(--sans);fill:var(--ink);pointer-events:none}.node:focus-visible circle{stroke:var(--indigo);stroke-width:3}
.pub{padding-top:1.2rem;padding-bottom:2rem}.pub header{margin-bottom:1.5rem}.pub h1{font-size:clamp(2rem,5vw,3rem)}.pub section{margin:2.2rem 0}.pub h2{margin:0 0 .5rem}
.pub p,.pub li{max-width:42rem}.pub-cta{display:flex;flex-wrap:wrap;gap:.6rem}.pub-cta:empty{display:none}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0 0 .8rem;font:.85rem var(--sans);color:var(--soft)}.crumbs li+li::before{content:"›";margin-right:.4rem}
.pub-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}.pub-cards article{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:1rem}
.pub-cards h3{margin:0 0 .4rem;font:500 1.15rem var(--serif)}.pub-cards ol{padding-left:1.2rem;font:.9rem var(--sans);color:var(--soft)}
.pub-links{list-style:none;padding:0}.pub-links li{padding:.35rem 0}.pub-links span{color:var(--soft);font-family:var(--sans);font-size:.9rem}
.pub-foot nav{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));margin-bottom:1rem}.pub-foot h2{font:600 .8rem var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--soft)}.pub-foot ul{list-style:none;padding:0;margin:0;font-family:var(--sans)}.pub-foot li{padding:.25rem 0}
:root[data-theme=light]{--paper:#F6F4EE;--sheet:#FFFEFB;--ink:#1F2622;--soft:#5D665F;--rule:#DDD9CE;--indigo:#2F5D46;--margin:#B5473B}
:root[data-theme=dark]{--paper:#121714;--sheet:#1A211D;--ink:#ECEDE6;--soft:#9BA79F;--rule:#2B352E;--indigo:#86BFA0;--margin:#E58A7E}
:root[data-size=small]{font-size:14.5px}:root[data-size=large]{font-size:18.5px}
:root[data-contrast=high]{--ink:#000;--soft:#1f2823;--rule:#4a554d;--paper:#fff;--sheet:#fff;--indigo:#1d4a33;--margin:#9a2f24}
:root[data-contrast=high][data-theme=dark]{--ink:#fff;--soft:#e3ece6;--rule:#a9b8ae;--paper:#000;--sheet:#0a0a0a;--indigo:#a9e0c0;--margin:#ffb3a6}
@media (prefers-color-scheme:dark){:root[data-contrast=high]:not([data-theme=light]){--ink:#fff;--soft:#e3ece6;--rule:#a9b8ae;--paper:#000;--sheet:#0a0a0a;--indigo:#a9e0c0;--margin:#ffb3a6}}
:root[data-contrast=high] :focus-visible{outline-width:3px}:root[data-contrast=high] .btn.ghost,:root[data-contrast=high] select,:root[data-contrast=high] input{border-color:var(--ink)}
:root[data-motion=reduce] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
:root[data-font=sans] .cell,:root[data-font=sans] .sheet-title{font-family:var(--sans)}
@media (forced-colors:active){.btn,.etb,.chip{border:1px solid ButtonText}.sheet,.clip{border:1px solid CanvasText}}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.set{display:flex;flex-direction:column;gap:.8rem;max-width:36rem;margin:2rem 0;scroll-margin-top:5rem}.set h2{margin:0}.set-list{margin:0;padding-left:1.2rem;font-family:var(--sans)}
.set-check{display:flex;align-items:center;gap:.6rem;min-height:44px;font-family:var(--sans)}.set-check input{width:1.2rem;height:1.2rem;accent-color:var(--indigo)}
.set table{border-collapse:collapse;width:100%}.set th,.set td{text-align:left;padding:.45rem .4rem;border-bottom:1px solid var(--rule);font:.9rem var(--sans)}
kbd{font:.8rem var(--sans);border:1px solid var(--rule);border-radius:4px;padding:0 .35rem;background:var(--sheet)}.btn.danger{background:#9b1c1c}
.qc-field small{color:var(--soft)}
#print-root{display:none}
@media print{body>*:not(#print-root){display:none!important}#print-root{display:block;color:#000;background:#fff;font:12pt/1.55 var(--serif)}#print-root img{max-width:100%}#print-root .print-page{break-before:page}#print-root h1,#print-root h2{break-after:avoid}#print-root pre{white-space:pre-wrap}#print-root .callout{border:1px solid #999;padding:.4em .7em}dialog{display:none!important}}

/* ---------- Polish ---------- */
:root{--bb:0px}
::selection{background:color-mix(in srgb,var(--indigo) 25%,transparent)}
dialog::backdrop{background:rgba(20,23,31,.45)}
dialog[open]{animation:rise .18s ease-out}
@keyframes rise{from{opacity:0;transform:translateY(6px)}}
@keyframes spin{to{transform:rotate(360deg)}}
.work>*{animation:rise .2s ease-out}
.work h1{font-size:clamp(1.7rem,4vw,2.3rem);font-weight:500;margin:.2rem 0 .8rem}.work h2{margin:1.8rem 0 .6rem}
.loading{display:grid;place-items:center;gap:.7rem;min-height:30vh;font-family:var(--sans)}
.loading::before{content:"";width:1.6rem;height:1.6rem;border:2px solid var(--rule);border-top-color:var(--indigo);border-radius:50%;animation:spin .8s linear infinite}
.empty{border:1px dashed var(--rule);border-radius:var(--r);padding:2.2rem 1rem;margin:1rem 0}li.empty{border:0;border-radius:0;padding:1rem 0;margin:0}
.btn,.nb,.clip,.chip,.etb,.side a,.icon-btn,.bb,.pub-cards article{transition:background-color .15s,border-color .15s,filter .15s,color .15s,transform .1s}
.btn:hover{filter:brightness(1.12)}.btn.ghost:hover,.icon-btn:hover,.etb:hover:not(:disabled){background:var(--sheet)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5}
.nb:hover,.clip:hover,.pub-cards article:hover{border-color:var(--soft)}.side a:hover{background:var(--sheet)}.chip:hover{border-color:var(--soft)}
:where(.work,.dlg) :where(input[type=text],input[type=search],input[type=number],input:not([type]),select,textarea){font:.98rem var(--sans);min-height:44px;padding:.5rem .7rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);width:100%}
:where(.work,.dlg) textarea{min-height:0}
:where(input,textarea,select):focus-visible{outline:2px solid var(--indigo);outline-offset:1px}
.topbar{min-height:61px}.top-only{display:none}
.shell{grid-template-rows:auto 1fr}
.side{display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;width:min(18rem,85vw);z-index:20;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);border:0;border-right:1px solid var(--rule);padding:calc(.8rem + env(safe-area-inset-top)) .6rem calc(.8rem + env(safe-area-inset-bottom));transform:translateX(-102%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
.side.open{transform:none;visibility:visible;transition:transform .22s ease}
.side a.active{background:var(--sheet);box-shadow:inset 3px 0 var(--margin);font-weight:600}
.scrim{position:fixed;inset:0;z-index:19;background:rgba(20,23,31,.4);opacity:0;pointer-events:none;transition:opacity .2s}.scrim.on{opacity:1;pointer-events:auto}
.bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:grid;grid-template-columns:repeat(5,1fr);height:calc(3.6rem + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--rule);font-family:var(--sans)}
.bb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:44px;background:none;border:0;color:var(--soft);font-size:.7rem;text-decoration:none}.bb.active{color:var(--indigo);font-weight:600}
.bb-cap .dot{display:grid;place-items:center;width:46px;height:46px;margin-top:-1.1rem;border-radius:50%;background:var(--indigo);color:#fff;border:3px solid var(--paper)}
.update-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--bb) + 1rem);z-index:30;display:flex;align-items:center;gap:.8rem;max-width:94vw;padding:.6rem .8rem;border-radius:var(--r);background:var(--ink);color:var(--paper);font:.9rem var(--sans);box-shadow:0 4px 18px rgba(0,0,0,.25)}
.update-bar .btn{background:var(--paper);color:var(--ink);min-height:36px}.update-x{background:none;border:0;color:inherit;font-size:1.4rem;min-width:36px;min-height:36px}
.shell{--bb:calc(3.6rem + env(safe-area-inset-bottom))}
.work{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.work:has(.pdfview){padding-bottom:0}
.pagenav{bottom:var(--bb)}.fab{bottom:calc(4.6rem + var(--bb))}.pdfview{height:calc(100dvh - 5.2rem - var(--bb))}
@media (max-width:30rem){.status{display:none}}
@media (min-width:60rem){
  .shell{--bb:0px}.top-only{display:inline-flex}.bottom-bar,.scrim{display:none}
  .side{position:sticky;top:61px;height:calc(100dvh - 61px);width:auto;z-index:auto;transform:none;visibility:visible;padding:.6rem;transition:none}
  .work{padding-bottom:2rem}.fab{bottom:5.2rem}.pdfview{height:calc(100dvh - 61px - 4rem)}
}

/* ---------- No hand cursor, including on native elements ---------- */
a:any-link,button,summary,label,select,[role=button],[role=link],[role=option],input[type=checkbox],input[type=radio],input[type=range],input[type=file],input[type=submit],input[type=button],.node,.swatch,.chip,.btn,.etb,.cmd-item,.menu-item,.plink{cursor:default}
input::file-selector-button,input::-webkit-file-upload-button{cursor:default}
input[type=search]::-webkit-search-cancel-button,input[type=number]::-webkit-inner-spin-button{cursor:default}
:where(textarea,input[type=text],input[type=search],input[type=number],input[type=url],input[type=email],input:not([type]),[contenteditable=true],[contenteditable=plaintext-only],.cell){cursor:text}
.t-hr,.t-card{cursor:default}

/* ---------- Idea Orchard ---------- */
.brand{display:inline-flex;align-items:center;gap:.5rem;border-bottom:0}
.logo{width:1.55rem;height:1.55rem;flex:none}.logo .lf{fill:var(--indigo)}.logo .st{stroke:var(--indigo)}.logo .dt{fill:var(--margin)}
:where(.work,.dlg) :where(input[type=password]){font:.98rem var(--sans);min-height:44px;padding:.5rem .7rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);width:100%}
.growth{list-style:none;margin:1.5rem 0;padding:0}.growth li{position:relative;display:grid;grid-template-columns:2.6rem 1fr;gap:.9rem;padding-bottom:1.5rem}
.growth li::before{content:"";position:absolute;left:1.3rem;top:2.6rem;bottom:0;width:2px;background:var(--rule)}.growth li:last-child::before{display:none}.growth li.done::before{background:var(--indigo)}
.gmark{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;border:2px solid var(--rule);background:var(--sheet);font-size:1.15rem}
.growth li.done .gmark{border-color:var(--indigo);background:var(--indigo);color:#fff}.growth li.now .gmark{border-color:var(--margin);box-shadow:0 0 0 4px color-mix(in srgb,var(--margin) 18%,transparent)}
.growth div{display:flex;flex-direction:column;font-family:var(--sans)}.growth strong{font:500 1.15rem var(--serif)}.growth span{color:var(--soft);font-size:.9rem}.growth em{color:var(--margin);font-style:normal;font-size:.9rem;margin-top:.15rem}
.foot-brand{margin-bottom:1.2rem}.foot-brand p{margin:.3rem 0 0;color:var(--soft)}.pub-foot .copy{font:.85rem var(--sans);color:var(--soft)}
.contact{display:grid;gap:.8rem;max-width:34rem}.contact label{display:grid;gap:.3rem;font:.9rem var(--sans)}
.contact input,.contact textarea{font:1rem var(--sans);min-height:44px;padding:.5rem .7rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);width:100%}.hp{position:absolute;left:-9999px}
.nbtools{margin:.2rem 0 1rem}

/* ---------- No zooming, profile ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
html,body{touch-action:pan-x pan-y}
@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not(.sheet-title):not(.ai-title),select,textarea{font-size:max(16px,1rem)!important}}
.profile-head{display:flex;align-items:center;gap:.9rem;font-family:var(--sans)}.profile-head div{display:flex;flex-direction:column}
.avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}.avatar.initial{display:grid;place-items:center;background:var(--indigo);color:#fff;font:600 1.4rem var(--sans)}

/* ---------- Plans, usage and billing ---------- */
.side a{display:flex;align-items:center;gap:.7rem}.side a svg{width:20px;height:20px;flex:none;opacity:.85}
.pub-table{overflow-x:auto;margin:1rem 0;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet)}
.pub-table table{border-collapse:collapse;width:100%;min-width:34rem;font:.92rem var(--sans)}.pub-table th,.pub-table td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--rule);vertical-align:top}
.pub-table thead th{background:var(--paper);font-weight:600}.pub-table tbody th{font-weight:500;color:var(--soft)}.pub-table tr:last-child>*{border-bottom:0}
.banner{padding:.7rem .9rem;border:1px solid var(--rule);border-left:3px solid var(--indigo);border-radius:var(--r);background:var(--sheet);font-family:var(--sans)}.banner.warn{border-left-color:var(--margin)}
.yourplan{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:1.1rem;margin:1rem 0;font-family:var(--sans)}.yourplan h2,.yourplan h3{margin:0 0 .2rem}
.pc-top{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.pc-top h3{margin:0}.pc-emoji{font-size:1.6rem}.pc-emoji.big{font-size:2.4rem}
.facts{list-style:none;margin:.8rem 0;padding:0;display:grid;gap:.3rem;font-size:.92rem}.pc-list{list-style:none;margin:.6rem 0;padding:0;display:grid;gap:.25rem;font:.9rem var(--sans)}
.badge{font:600 .7rem var(--sans);padding:.15rem .55rem;border-radius:99px;background:var(--paper);border:1px solid var(--rule);color:var(--soft);text-transform:uppercase;letter-spacing:.04em}.badge.on{background:var(--indigo);border-color:var(--indigo);color:#fff}.badge.pro{border-color:var(--margin);color:var(--margin)}
.plans{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin:1rem 0}
.plancard{display:flex;flex-direction:column;gap:.3rem;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:1rem;font-family:var(--sans)}.plancard.mine{border-color:var(--indigo);box-shadow:0 0 0 1px var(--indigo)}
.plancard .btn{margin-top:auto;justify-content:center}.pc-price{font:500 1.3rem var(--serif);margin:.2rem 0}
.seg{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.6rem 0}.seg select,.seg input{width:auto}
.meter{margin:.8rem 0;font-family:var(--sans)}.mhead{display:flex;justify-content:space-between;gap:1rem;font-size:.92rem;margin-bottom:.3rem}
.track{height:.55rem;background:var(--rule);border-radius:99px;overflow:hidden}.track i{display:block;height:100%;background:var(--indigo);border-radius:99px;transition:width .4s}.meter.near .track i{background:var(--margin)}
.stats,.overview{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));margin:1rem 0;align-items:stretch}
.stat{display:flex;flex-direction:column;gap:.1rem;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:.7rem .8rem;font-family:var(--sans)}.stat strong{font:500 1.4rem var(--serif)}.stat small{color:var(--soft)}
.plan-chip{display:flex;flex-direction:column;justify-content:center;gap:.1rem;background:var(--indigo);color:#fff;border-radius:var(--r);padding:.7rem .8rem;text-decoration:none;font:600 .95rem var(--sans)}.plan-chip small{font-weight:400;opacity:.9}
.row .plan-chip{display:inline-flex;flex-direction:row;padding:.35rem .8rem;border-radius:99px}
.fgrid{display:grid;gap:1rem;margin:1rem 0}.fcard{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:1rem;font-family:var(--sans)}.fcard.locked{border-style:dashed}
.fhead{display:flex;gap:.8rem;align-items:flex-start}.fhead>div{flex:1}.fhead h3{margin:0;font:500 1.15rem var(--serif)}.femoji{font-size:1.6rem}.fcard>.btn,.fcard>p{margin-top:.8rem}
.badge.soon{background:var(--paper)}.tm-month{margin:1rem 0 .2rem;font:600 .8rem var(--sans);color:var(--soft);text-transform:uppercase;letter-spacing:.05em}
.gravity{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}.gravity a{font-weight:500}.bar{height:.4rem;background:var(--rule);border-radius:99px;margin:.3rem 0}.bar i{display:block;height:100%;background:var(--margin);border-radius:99px}
.upgrade{text-align:center}.up-emoji{font-size:2.6rem}.upgrade .dlg-actions{justify-content:center}.success{text-align:center;max-width:32rem;margin:2rem auto}.success .pc-list{text-align:left;max-width:22rem;margin:1rem auto}.success .clip-actions{justify-content:center}
.revchart{width:100%;height:auto;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);margin:.6rem 0}.revchart .axis{stroke:var(--rule)}.revchart .bar-net{fill:var(--indigo)}.revchart .line-ref{stroke:var(--margin);stroke-width:2}.revchart .tick{font:11px var(--sans);fill:var(--soft)}
@media (min-width:48rem){.fgrid{grid-template-columns:repeat(auto-fit,minmax(22rem,1fr))}}

/* ================= Interaction kit: tokens, press feedback, chrome ================= */
:root{--r:10px;--r-lg:20px;--ease:cubic-bezier(.2,.8,.2,1);--lift:0 12px 32px rgba(18,24,20,.2)}
html{overscroll-behavior-y:contain}
.btn{gap:.45rem;justify-content:center}.btn:disabled{opacity:.5}.btn.danger{background:#9b1c1c;color:#fff}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:0 .7rem}
.more-btn span{font:.95rem var(--sans)}
.btn:active,.icon-btn:active,.bb:active,.chip:active,.ui-item:active,.sel-btn:active,.toast-act:active{transform:scale(.97)}
.pressable{-webkit-touch-callout:none}.pressable:active{background-color:color-mix(in srgb,var(--rule) 35%,transparent)}
/* Interface chrome is not selectable by accident; editors, notes and clip text stay selectable. */
.topbar,.side,.bottom-bar,.btn,.icon-btn,.chip,.bb,.menu-item,.nb,.prow,.plink,.pagenav,.etool,.clip-top,.toast,.ui-item,.ui-sheet-head,.ui-title,.sel-btn,.update-bar{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.hx{position:fixed;left:-9999px;opacity:0;pointer-events:none}

/* Notion-style grouped sidebar */
.side{overflow-y:auto;overscroll-behavior:contain}
.side-group{display:flex;flex-direction:column;gap:2px;padding:.35rem 0}
.side-group+.side-group{border-top:1px solid var(--rule)}
.side-h{margin:.4rem .9rem .15rem;font:600 .74rem var(--sans);color:var(--soft)}
.side a{display:flex;align-items:center;gap:.7rem}.side a svg{flex:none;color:var(--soft)}.side a.active svg{color:var(--indigo)}

/* Page transition */
.page-in{animation:pageIn .22s var(--ease)}
@keyframes pageIn{from{opacity:0}}

/* Toasts */
.toasts{--bb:calc(3.6rem + env(safe-area-inset-bottom));position:fixed;left:0;right:0;bottom:calc(var(--bb) + .9rem);z-index:60;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:0 .8rem;pointer-events:none}
@media (min-width:60rem){.toasts{--bb:0px}}
.toast{pointer-events:auto;display:flex;align-items:center;gap:.9rem;max-width:min(30rem,100%);padding:.65rem .7rem .65rem 1rem;border-radius:14px;background:var(--ink);color:var(--paper);font:.92rem/1.35 var(--sans);box-shadow:var(--lift);animation:toastIn .24s var(--ease)}
.toast.error{background:#9b1c1c;color:#fff}
.toast.out{opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s}
.toast-act{margin-left:auto;min-height:36px;padding:0 .8rem;border:0;border-radius:9px;background:color-mix(in srgb,currentColor 16%,transparent);color:inherit;font:600 .9rem var(--sans)}
@keyframes toastIn{from{opacity:0;transform:translateY(14px) scale(.98)}}

/* Modals and bottom sheets */
.ui-dlg{padding:0;border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--sheet);color:var(--ink);width:min(26rem,calc(100vw - 2rem));max-height:min(86dvh,42rem);overflow:auto;box-shadow:var(--lift);font-family:var(--sans);overscroll-behavior:contain}
.ui-dlg::backdrop{background:rgba(16,20,17,.45);animation:fadeIn .18s}
.ui-dlg[open]{animation:dlgIn .2s var(--ease)}
.ui-dlg.closing{animation:dlgOut .15s ease-in forwards}
.ui-dlg.closing::backdrop{opacity:0;transition:opacity .15s}
.ui-grab{display:none}
.ui-body{display:flex;flex-direction:column;gap:.7rem;padding:1.25rem}
.ui-title{margin:0;font:600 1.1rem/1.3 var(--sans)}
.ui-msg,.ui-help{margin:0;color:var(--soft);font-size:.92rem;line-height:1.45}
.ui-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--soft)}
.ui-field input,.ui-field textarea{width:100%;min-height:46px;padding:.55rem .75rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);color:var(--ink);font:1rem var(--sans)}
.ui-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.3rem}
.sheet-body{gap:.35rem}
.ui-sheet-head{display:flex;flex-direction:column;padding:.2rem .5rem .5rem}
.ui-sheet-head strong{font:600 1rem var(--sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-sheet-head span{font-size:.82rem;color:var(--soft)}
.ui-list{display:flex;flex-direction:column;gap:2px}
.ui-item{display:flex;align-items:center;gap:.8rem;width:100%;min-height:48px;padding:0 .7rem;border:0;border-radius:var(--r);background:none;color:var(--ink);font:1rem var(--sans);text-align:left}
.ui-item:hover,.ui-item.on{background:var(--paper)}.ui-item.on{font-weight:600}
.ui-item.danger{color:var(--margin)}.ui-item:disabled{opacity:.45}
.ui-ico{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;color:var(--soft)}.ui-item.danger .ui-ico{color:inherit}
.ui-sep{border:0;border-top:1px solid var(--rule);margin:.25rem .5rem}
.ui-cancel{min-height:48px;margin-top:.3rem;border:0;border-radius:var(--r);background:var(--paper);color:var(--ink);font:600 1rem var(--sans)}
@media (min-width:40.01rem){.ui-cancel{display:none}}
@media (max-width:40rem){
  .ui-dlg{margin:auto 0 0;width:100%;max-width:none;border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}
  .ui-dlg[open]{animation:sheetIn .28s var(--ease)}
  .ui-dlg.closing{animation:sheetOut .16s ease-in forwards}
  .ui-grab{display:block;position:relative;height:1.7rem;touch-action:none}
  .ui-grab::after{content:"";position:absolute;left:50%;top:.6rem;width:2.4rem;height:.3rem;margin-left:-1.2rem;border-radius:9px;background:var(--rule)}
  .ui-body{padding-top:.1rem}
  .ui-actions{flex-direction:column-reverse}.ui-actions .btn{width:100%}
}
@keyframes fadeIn{from{opacity:0}}
@keyframes dlgIn{from{opacity:0;transform:scale(.96)}}@keyframes dlgOut{to{opacity:0;transform:scale(.97)}}
@keyframes sheetIn{from{transform:translateY(100%)}}@keyframes sheetOut{to{transform:translateY(100%)}}

/* Custom select */
.sel-native{display:none!important}
.sel-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;min-height:44px;padding:0 .7rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);font:.98rem var(--sans);text-align:left}
.sel-btn svg{flex:none;color:var(--soft)}.sel-btn:disabled{opacity:.5}
.sel-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Skeletons */
.skel{display:flex;flex-direction:column;gap:.9rem;padding:.4rem 0}.skel:not(.on){visibility:hidden}
.sk{display:block;border-radius:8px;background:linear-gradient(100deg,var(--rule) 30%,color-mix(in srgb,var(--rule) 50%,var(--sheet)) 50%,var(--rule) 70%);background-size:200% 100%;animation:shimmer 1.3s linear infinite}
.sk.title{height:2rem;width:55%;margin-bottom:.4rem}.sk.line{height:.9rem}.sk.card{height:5.25rem;border-radius:var(--r)}.sk.dot{flex:none;width:2.6rem;height:2.6rem;border-radius:50%}
.sk.w35{width:35%}.sk.w50{width:50%}.sk.w60{width:60%}
.sk-row{display:flex;align-items:center;gap:.8rem}.sk-col{flex:1;display:flex;flex-direction:column;gap:.5rem}
.sk-doc{display:flex;flex-direction:column;gap:.9rem;min-height:50dvh;padding:1.2rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet)}
@keyframes shimmer{to{background-position:-200% 0}}

/* Pull to refresh */
.ptr{position:fixed;top:calc(env(safe-area-inset-top) + 8px);left:50%;z-index:40;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--rule);background:var(--sheet);color:var(--indigo);box-shadow:var(--lift);opacity:0;pointer-events:none;transform:translate(-50%,-52px)}
.ptr.busy svg{animation:spin .8s linear infinite}

/* Swipe rows */
.swipe{position:relative;overflow:hidden;display:block;padding:0}
.sw-fg{position:relative;display:flex;align-items:center;gap:.3rem;padding:.2rem 0;background:var(--paper);touch-action:pan-y;transition:transform .2s var(--ease)}
.sw-bg{position:absolute;inset:0;display:flex;align-items:center;padding:0 1rem;color:#fff;font:600 .9rem var(--sans);opacity:0}
.sw-l{justify-content:flex-end}.sw-r{justify-content:flex-start}
.sw-bg.gold{background:#a8741a}.sw-bg.grey{background:#5d665f}.sw-bg.red{background:#9b1c1c}

/* Empty states */
.empty:not(li):not([role=alert])::before{content:"";display:block;width:46px;height:46px;margin:0 auto .9rem;background:var(--indigo);opacity:.55;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21v-8M12 13c0-3 2-5 6-5 0 3-2 5-6 5zM12 15c0-2.5-1.8-4.2-5-4.2 0 2.5 1.8 4.2 5 4.2z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21v-8M12 13c0-3 2-5 6-5 0 3-2 5-6 5zM12 15c0-2.5-1.8-4.2-5-4.2 0 2.5 1.8 4.2 5 4.2z'/%3E%3C/svg%3E") center/contain no-repeat}
.empty h1,.empty h2{margin:.1rem 0 .4rem;font:600 1.15rem var(--sans)}
.empty p{margin:0 auto 1rem;max-width:26rem}
.empty-li{list-style:none}

/* Clip card header */
.clip-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.clip-more{min-height:36px;min-width:36px;padding:0;border-color:transparent}

/* ================= Pass 2: sync status, trash, version history ================= */
.sync-wrap{margin-left:auto}
.sync-pill{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:0 .75rem;border:1px solid var(--rule);border-radius:999px;background:var(--sheet);color:var(--soft);font:.8rem var(--sans);-webkit-user-select:none;user-select:none}
.sync-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--soft)}
.sync-pill[data-state=synced] .sync-dot{background:#3f8f5f}
.sync-pill[data-state=syncing] .sync-dot{background:var(--indigo);animation:pulse 1s ease-in-out infinite}
.sync-pill[data-state=offline] .sync-dot,.sync-pill[data-state=pending] .sync-dot{background:#c98a12}
.sync-pill[data-state=error] .sync-dot,.sync-pill[data-state=bad] .sync-dot{background:#c0392b}
.sync-pill[data-state=bad]{color:var(--margin);border-color:currentColor}
@keyframes pulse{50%{opacity:.35}}
@media (max-width:30rem){.sync-pill[data-state=synced] .sync-label,.sync-pill[data-state=local] .sync-label{display:none}.sync-pill{min-width:36px;justify-content:center;padding:0 .6rem}}
.sync-rows{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:.2rem 0;font-size:.92rem}.sync-rows dt{color:var(--soft)}.sync-rows dd{margin:0;text-align:right}

.trash-list{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0;padding:0;list-style:none;font-family:var(--sans)}
.trash-row{display:flex;align-items:center;gap:.8rem;padding:.7rem .8rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet)}
.trash-ico{display:grid;place-items:center;flex:none;width:2.4rem;height:2.4rem;border-radius:8px;background:var(--paper);color:var(--soft)}
.trash-main{display:flex;flex-direction:column;flex:1;min-width:0}.trash-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-main span{font-size:.8rem;color:var(--soft)}
.trash-act{display:flex;gap:.4rem;flex:none}
@media (max-width:34rem){.trash-row{flex-wrap:wrap}.trash-act{width:100%;justify-content:flex-end}}

.vh-list{max-height:48dvh;overflow:auto}.vh-row.on{background:var(--paper);border-radius:var(--r)}
.vh-meta{display:flex;flex-direction:column;min-width:0}.vh-meta small{overflow:hidden;color:var(--soft);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}
.vh-prev{padding:0 .7rem .8rem}
.vh-prev pre{max-height:14rem;margin:0 0 .7rem;padding:.7rem;overflow:auto;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);font:.9rem/1.5 var(--serif);white-space:pre-wrap;-webkit-user-select:text;user-select:text}

/* ================= Pass 3: reminders ================= */
.nav-badge{margin-left:auto;min-width:1.35rem;padding:0 .4rem;border-radius:999px;background:var(--margin);color:#fff;font:600 .72rem/1.35rem var(--sans);text-align:center}
.rem-note{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.8rem 1rem;border:1px dashed var(--rule);border-radius:var(--r);font:.9rem/1.45 var(--sans);color:var(--soft)}.rem-note p{margin:0}
.rem-sec{margin:1.4rem 0;font-family:var(--sans)}.rem-sec h2,.rem-sec summary{margin:0 0 .6rem;font:600 .95rem var(--sans)}.rem-sec h2.over{color:var(--margin)}
.rem-sec summary{cursor:pointer;color:var(--soft)}
.rem-list{display:flex;flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none}
.rem-row{border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet)}.rem-row.over{border-color:color-mix(in srgb,var(--margin) 55%,var(--rule))}
.rem-row .sw-fg{padding:0;background:var(--sheet)}
.rem-in{display:flex;flex:1;align-items:center;gap:.8rem;min-width:0;padding:.7rem .8rem}
.rem-check{display:grid;place-items:center;flex:none;width:26px;height:26px;border:2px solid var(--soft);border-radius:50%;background:none;color:#fff}
.rem-row.done .rem-check{border-color:var(--indigo);background:var(--indigo)}.rem-row.done .rem-main strong{text-decoration:line-through;color:var(--soft)}
.rem-main{display:flex;flex:1;flex-direction:column;gap:.1rem;min-width:0}.rem-main strong{overflow:hidden;text-overflow:ellipsis}
.rem-meta,.rem-link{overflow:hidden;font-size:.82rem;color:var(--soft);text-overflow:ellipsis;white-space:nowrap}.rem-row.over .rem-meta{color:var(--margin)}.rem-link{color:var(--indigo)}
.rem-form .rem-when{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.rem-form input[type=date],.rem-form input[type=time]{width:100%;min-height:46px;padding:.5rem .7rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);color:var(--ink);font:1rem var(--sans)}
.rem-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.ui-help.err{color:var(--margin)}
.btn.danger-text{color:var(--margin)}
.rem-alert-title{font:600 1.2rem/1.3 var(--sans);white-space:normal}

/* ================= Pass 4: nested collections ================= */
.col-tree{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;font-family:var(--sans)}
.col-tree .col-tree{margin-top:.5rem;padding-left:1rem;border-left:2px solid var(--rule)}
.col-node{border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet)}
.col-head{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem}
.col-toggle{display:grid;place-items:center;flex:none;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--soft);transform:rotate(-90deg);transition:transform .15s}
.col-toggle.open{transform:none}.col-toggle:disabled{opacity:.3}
.col-ico{display:grid;place-items:center;flex:none;color:var(--indigo)}
.col-name{display:flex;flex:1;flex-direction:column;min-width:0}.col-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-name small{color:var(--soft);font-size:.8rem}
.col-body{padding:0 .7rem .7rem}.col-body .plist{margin:.2rem 0 .3rem}
@media (max-width:30rem){.col-tree .col-tree{padding-left:.6rem}}

/* ================= Pass 4: audio, previews, drop zone ================= */
.ap{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);font-family:var(--sans)}
.ap.missing{opacity:.5}
.ap-play{display:grid;place-items:center;flex:none;width:44px;height:44px;border:0;border-radius:50%;background:var(--indigo);color:#fff}.ap-play:disabled{opacity:.4}
.ap-mid{display:flex;flex:1;flex-direction:column;gap:.15rem;min-width:0}.ap-bar{width:100%;accent-color:var(--indigo)}
.ap-time{color:var(--soft);font-size:.78rem;font-variant-numeric:tabular-nums}
.ap-speed{flex:none;min-width:44px;min-height:36px;border:1px solid var(--rule);border-radius:8px;background:none;color:var(--ink);font:600 .8rem var(--sans)}
.audio-rec{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}
.audio-rec:has(.rec-dot){flex-direction:row;align-items:center}
.rec-btn svg{color:inherit}
.rec-dot{width:12px;height:12px;border-radius:50%;background:#c0392b;animation:pulse 1s ease-in-out infinite}.rec-time{font:600 1.2rem var(--sans);font-variant-numeric:tabular-nums}
.clip-zoom{display:block;width:100%;padding:0;border:0;background:none}.clip-zoom img{display:block;width:100%}
.clip-filebtns{display:flex;flex-wrap:wrap;gap:.4rem}
.link-prev{display:flex;gap:.7rem;margin:.4rem 0;font-family:var(--sans)}.link-prev img{flex:none;width:5.5rem;height:5.5rem;border-radius:8px;object-fit:cover}
.link-prev small{color:var(--soft)}.link-prev p{margin:.1rem 0 0;font-size:.88rem;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pv-img{display:block;max-width:100%;max-height:60dvh;margin:0 auto;border-radius:var(--r)}
.pv-text{max-height:40dvh;margin:0;padding:.7rem;overflow:auto;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);font:.85rem/1.5 ui-monospace,monospace;white-space:pre-wrap;-webkit-user-select:text;user-select:text}
.pv-generic{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1rem;color:var(--soft)}
.drop-veil{position:fixed;inset:0;z-index:70;display:grid;place-items:center;background:color-mix(in srgb,var(--indigo) 22%,transparent);backdrop-filter:blur(2px);pointer-events:none}
.drop-veil[hidden]{display:none}.drop-veil p{margin:0;padding:1.2rem 2rem;border:2px dashed var(--indigo);border-radius:var(--r-lg);background:var(--sheet);font:600 1.1rem var(--sans)}

/* ================= Pass 5: device encryption ================= */
.lock{display:grid;min-height:100dvh;place-content:center;gap:1.2rem;padding:1.5rem;background:var(--paper);color:var(--ink);font-family:var(--sans)}
.lock-brand{text-align:center;font:600 1.1rem var(--serif,var(--sans))}
.lock-card{display:flex;flex-direction:column;gap:.8rem;width:min(24rem,calc(100vw - 3rem));padding:1.5rem;border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--sheet);box-shadow:var(--lift)}
.lock-card h1{margin:0;font:600 1.4rem/1.2 var(--sans);text-align:center}.lock-card .sub{margin:0;text-align:center}
.lock-ico{display:grid;place-items:center;color:var(--indigo)}
.lock-card input{width:100%;min-height:48px;padding:.55rem .8rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);color:var(--ink);font:1rem var(--sans)}
.lock-err{min-height:1.3em;margin:0;color:var(--margin);font-size:.88rem;text-align:center}
.lock-erase{align-self:center;margin-top:.4rem;border:0;background:none;color:var(--soft);font:.82rem var(--sans);text-decoration:underline}
.vault-box{display:flex;flex-direction:column;gap:.8rem}
.vault-key{display:flex;flex-direction:column;gap:.6rem}
.vault-key code{display:block;padding:.9rem;border:1px dashed var(--rule);border-radius:var(--r);background:var(--paper);font:600 1.05rem/1.6 ui-monospace,monospace;text-align:center;word-break:break-all;-webkit-user-select:text;user-select:text}
.ui-check{display:flex;align-items:flex-start;gap:.6rem;font-size:.9rem;line-height:1.4}.ui-check input{flex:none;width:20px;height:20px;margin-top:.1rem}
.ui-body progress{width:100%;height:10px;accent-color:var(--indigo)}

/* ================= Saved articles ================= */
.ar-body{max-height:56dvh;overflow:auto;padding:.2rem .3rem;font:1.02rem/1.65 var(--serif);-webkit-user-select:text;user-select:text}
.ar-body h3{margin:1.2rem 0 .3rem;font:600 1.1rem/1.3 var(--sans)}.ar-body p{margin:.6rem 0}.ar-body blockquote{margin:.8rem 0;padding-left:.9rem;border-left:3px solid var(--rule);color:var(--soft)}.ar-li{padding-left:.4rem}
.pv-pdf{display:block;max-width:100%;margin:0 auto;border:1px solid var(--rule);border-radius:6px;background:#fff}

/* ===== Pass 8: accent, switches, checkboxes, pickers, pages list, standalone ===== */
html{scrollbar-gutter:stable}
.btn:not(.ghost):not(.danger){color:var(--on-accent,#fff)}
:root[data-accent=custom] ::selection{background:var(--accent-soft)}

/* custom checkbox */
input[type=checkbox]:not([switch]):not(.ios-switch){appearance:none;-webkit-appearance:none;flex:none;display:inline-grid;place-content:center;width:1.3rem;height:1.3rem;margin:0;border:2px solid var(--soft);border-radius:6px;background:var(--sheet);transition:background-color .15s,border-color .15s,transform .1s}
input[type=checkbox]:not([switch]):not(.ios-switch)::after{content:"";width:.7rem;height:.38rem;border:solid var(--on-accent,#fff);border-width:0 0 2.5px 2.5px;transform:rotate(-45deg) scale(0) translate(1px,-1px);transition:transform .12s}
input[type=checkbox]:not([switch]):not(.ios-switch):checked{background:var(--indigo);border-color:var(--indigo)}
input[type=checkbox]:not([switch]):not(.ios-switch):checked::after{transform:rotate(-45deg) scale(1) translate(1px,-1px)}
input[type=checkbox]:not([switch]):not(.ios-switch):active{transform:scale(.92)}
input[type=checkbox]:disabled{opacity:.45}
.chk{width:1.3rem;height:1.3rem}

/* iOS-style switch */
.set-switch{justify-content:space-between;gap:1rem}.set-switch>span{flex:1}
.ios-switch{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:51px;height:31px;margin:0;border-radius:99px;background:color-mix(in srgb,var(--ink) 20%,var(--paper));border:1px solid transparent;transition:background-color .2s,border-color .2s}
.ios-switch::after{content:"";position:absolute;top:1px;left:1px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.28);transition:transform .2s cubic-bezier(.3,.9,.4,1.1)}
.ios-switch:checked{background:var(--indigo);border-color:var(--indigo)}
.ios-switch:checked::after{transform:translateX(20px)}
.ios-switch:active::after{width:31px}.ios-switch:checked:active::after{transform:translateX(16px)}
.ios-switch:focus-visible{outline:2px solid var(--indigo);outline-offset:3px}

/* accent row + colour picker */
.acc-btn{display:flex;align-items:center;gap:.7rem;min-height:44px;padding:0 .9rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);font:.95rem var(--sans);text-align:left}
.acc-dot,.cp-chip{flex:none;width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid var(--sheet);box-shadow:0 0 0 1px var(--soft)}
.cp{width:min(22rem,94vw)}
.cp-pad{position:relative;height:11rem;border-radius:var(--r);touch-action:none;outline:0;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,var(--hue,red));cursor:crosshair}
.cp-pad:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
.cp-knob{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.35);pointer-events:none}
.cp-hue{appearance:none;-webkit-appearance:none;width:100%;height:14px;margin:.7rem 0;border-radius:99px;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}
.cp-hue::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid rgba(0,0,0,.4);box-shadow:0 2px 5px rgba(0,0,0,.3)}
.cp-hue::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid rgba(0,0,0,.4)}
.cp-row{display:flex;align-items:center;gap:.7rem}.cp-row .ui-field{flex:1;margin:0}
.cp-hex{font:600 1rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.04em}
.cp-sw{display:flex;flex-wrap:wrap;gap:.55rem;margin:.8rem 0 .2rem}
.swatch-btn{width:34px;height:34px;padding:0;border-radius:50%;border:2px solid var(--sheet);background:var(--c);box-shadow:0 0 0 1px var(--soft);transition:transform .1s}
.swatch-btn[aria-pressed=true]{box-shadow:0 0 0 3px var(--indigo)}.swatch-btn:active{transform:scale(.9)}

/* date and time picker */
.when-btn{display:flex;align-items:center;gap:.6rem;width:100%;min-height:48px;padding:0 .9rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);font:1rem var(--sans);text-align:left}
.when-btn span{flex:1}.when-btn svg:last-child{color:var(--soft)}
.dtp{width:min(22rem,94vw)}
.dtp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;font-family:var(--sans)}
.dtp-prev{display:grid;transform:rotate(90deg)}.dtp-next{display:grid;transform:rotate(-90deg)}.dtp-up{display:grid;transform:rotate(180deg)}
.dtp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-family:var(--sans)}
.dtp-dow{text-align:center;font-size:.75rem;color:var(--soft);padding:.3rem 0}
.dtp-day{aspect-ratio:1;min-height:40px;border:0;border-radius:50%;background:none;color:var(--ink);font:.95rem var(--sans);transition:background-color .12s,transform .1s}
.dtp-day:hover{background:var(--rule)}.dtp-day:active{transform:scale(.9)}
.dtp-day.today{box-shadow:inset 0 0 0 1.5px var(--indigo)}
.dtp-day.on{background:var(--indigo);color:var(--on-accent,#fff);font-weight:600}
.dtp-time{display:flex;align-items:center;justify-content:center;gap:.4rem;margin:.8rem 0 .3rem;font-family:var(--sans)}
.dtp-step{display:flex;flex-direction:column;align-items:center;gap:.2rem}.dtp-step .icon-btn{min-height:34px;min-width:56px;border-color:transparent}
.dtp-num{width:3.6rem;text-align:center;font:600 1.6rem var(--sans);border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);padding:.3rem 0}
.dtp-colon{font:600 1.6rem var(--sans)}
.dtp-ampm{display:flex;flex-direction:column;gap:.3rem;margin-left:.5rem}.dtp-ampm .chip{min-height:38px}
.dtp-sum{margin:.5rem 0 0;text-align:center;color:var(--soft);font:.9rem var(--sans)}

/* account button, back button */
.acct-btn{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--rule);background:var(--sheet);color:var(--ink);font:600 1rem var(--sans)}
.acct-btn.signed{box-shadow:0 0 0 2px var(--indigo)}
.back-btn{display:none}.back-ico{display:grid;transform:rotate(90deg)}
:root[data-display=standalone] .back-btn:not([hidden]){display:inline-grid;place-items:center}

/* pages list */
.pg-tools{margin:.5rem 0}.pg-sort{display:inline-flex;align-items:center;gap:.4rem}.pg-count{margin:.6rem 0 .2rem}
.pg-row{display:flex;align-items:center;gap:.2rem;background:var(--paper);position:relative}
.pg-row>a{flex:1;min-width:0}.pg-row strong,.pg-row span{overflow:hidden;text-overflow:ellipsis}
.pg-row.drag{z-index:3;background:var(--sheet);box-shadow:var(--lift,0 8px 24px rgba(0,0,0,.2));transition:none}
.pg-grip{display:grid;place-items:center;flex:none;width:40px;min-height:48px;border:0;background:none;color:var(--soft);touch-action:none;cursor:grab;border-radius:8px}.pg-grip:hover,.pg-grip:focus-visible{color:var(--ink);background:var(--hover)}.pg-grip:active{cursor:grabbing}
.pg-more{min-width:40px;min-height:40px;border-color:transparent}
.pg-more-li{padding:.8rem 0;text-align:center;border-bottom:0!important}
.pg-row.swipe{display:block}
.ks-scroll{max-height:60dvh;overflow:auto}.ks{width:100%;border-collapse:collapse;font-family:var(--sans)}.ks th{text-align:left;font-weight:400;padding:.45rem .5rem .45rem 0}.ks td{text-align:right;white-space:nowrap}
.ks kbd,.set kbd{padding:.1rem .4rem;border:1px solid var(--rule);border-bottom-width:2px;border-radius:5px;font:.8rem ui-monospace,monospace}

/* installed app (standalone) */
:root[data-display=standalone]{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}
:root[data-display=standalone] .topbar{padding-top:calc(.5rem + env(safe-area-inset-top,0px))}
:root[data-display=standalone] .bottom-bar{padding-bottom:calc(.3rem + env(safe-area-inset-bottom,0px))}
@media (min-width:60rem){:root[data-display=standalone] .topbar{min-height:56px}}
.follow{margin:1rem 0}.follow-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem}.follow-btn{text-decoration:none}

/* profile page and avatars */
.avatar-ico{display:inline-grid;place-items:center;flex:none;border-radius:50%;background:color-mix(in srgb,var(--av,var(--indigo)) 16%,var(--sheet));color:var(--av,var(--indigo));font:600 1rem var(--sans);overflow:hidden}
.acct-btn{padding:0;overflow:hidden}
.prof{max-width:34rem;font-family:var(--sans)}
.prof-head{display:flex;align-items:center;gap:1.2rem;margin:1rem 0}
.prof-acct{margin-top:1.8rem;padding-top:1rem;border-top:1px solid var(--rule)}
.prof-meta p{margin:.2rem 0}
.avp{width:min(24rem,94vw)}
.avp-preview{display:grid;place-items:center;margin:.3rem 0 .8rem}
.avp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:.5rem}
.avp-item{display:grid;place-items:center;padding:3px;border:2px solid transparent;border-radius:50%;background:none}
.avp-item[aria-checked=true]{border-color:var(--indigo)}
.avp-h{font:600 .8rem var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--soft);margin:1rem 0 .2rem}
.avp-more{min-height:34px;padding:0 .8rem}
.avp-svg{margin:.9rem 0 0}.avp-svg summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.avp-paste{width:100%;font:.8rem ui-monospace,monospace;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);color:var(--ink);padding:.6rem;margin:.4rem 0}
.google-btn{display:flex;align-items:center;justify-content:center;gap:.7rem;width:100%;min-height:48px;margin:.6rem 0;font-weight:600}
.g-logo{display:inline-grid}.prof-or{text-align:center;margin:.4rem 0}
.prof-danger{margin-top:1rem}.prof-danger summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--soft)}

/* ===== Polish pass ===== */
/* pages list: rows, scrolling filter strips, spacing */
.pg-row .sw-fg>a,.pg-row>a{flex:1;min-width:0}
.pg-row .sw-fg{gap:.1rem}
.pg-tools,.pg-strip{contain:inline-size;display:flex;flex-wrap:nowrap;gap:.45rem;overflow-x:auto;margin:.5rem -1.2rem 0;padding:.15rem 1.2rem;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(to right,transparent 0,#000 1.2rem,#000 calc(100% - 1.6rem),transparent 100%)}
.pg-tools::-webkit-scrollbar,.pg-strip::-webkit-scrollbar{display:none}
.pg-tools .chip,.pg-strip .chip{flex:none;white-space:nowrap}
@media (min-width:60rem){.pg-tools,.pg-strip{contain:none;margin:.5rem 0;padding:.15rem 0;mask-image:none;flex-wrap:wrap;overflow:visible}}
.pg-strip:empty{display:none}
.pg-count{margin:.9rem 0 .2rem;font-size:.85rem}
.set-nav,.work>.chips{margin-bottom:.8rem}
.work>p.sub{margin:.4rem 0 1rem}

/* profile page spacing */
.prof .btn{margin-top:.9rem}.prof .qc-field{display:block;margin-top:.4rem}.prof .qc-field small{display:block;margin-top:.35rem}
.prof .clip-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.9rem 0 .4rem}.prof .clip-actions .btn{margin-top:0}
.prof input[type=text],.prof input[type=password]{width:100%}
.prof h2{margin:0 0 .5rem}
.prof-head .avatar-ico{box-shadow:0 0 0 1px var(--rule)}

/* account button: one calm ring */
.acct-btn{border:1px solid var(--rule)!important;box-shadow:none!important;background:transparent}
.acct-btn.signed{border-color:var(--indigo)!important}
.acct-btn:hover{background:var(--hover)}

/* motion: sheets and pickers ease in, and respect reduced motion */
.dtp-day,.swatch-btn,.avp-item,.acc-btn,.when-btn,.pg-row{transition:background-color .15s,box-shadow .15s,transform .1s}
@media (prefers-reduced-motion:reduce){.dtp-day,.swatch-btn,.avp-item,.ios-switch,.ios-switch::after{transition:none!important}}
.pg-row.swipe{display:block}.pg-row.swipe>.sw-fg{width:100%}
.pg-grip svg{stroke-width:3.2}
.dtp-day{aspect-ratio:auto;height:40px;min-height:0}
.dtp-dow{padding:.1rem 0}
.dtp .ui-actions{display:grid;grid-template-columns:auto auto 1fr;gap:.5rem}
.dtp .ui-actions .btn{margin:0}
/* Text on accent-coloured buttons: white on the light theme, dark ink on the light-green dark theme. Custom accents set this inline. */
:root{--on-accent:#fff}
:root[data-theme=dark]{--on-accent:#0E1A14}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-contrast=high]){--on-accent:#0E1A14}}
.prof input[type=text],.prof input[type=password],.prof input[type=email]{background:var(--sheet);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r);padding:.65rem .8rem;font:1rem var(--sans)}
.prof input:focus-visible{outline:2px solid var(--indigo);outline-offset:1px}
