/* Library: a card catalogue. Collections are drawers in a cabinet (left rail), files are index cards on tinted stock,
   descriptions are typed on the card's back. "What the AI knows" is a ledger of releases with the changed lines. */
.lib{display:grid;grid-template-columns:232px minmax(0,1fr);gap:var(--s5);max-width:1200px;margin:0 auto;padding:0 0 var(--s6);align-items:start}
.lib.has-dr{grid-template-columns:232px minmax(0,1fr) 400px}
.lib .stamp.warn{border-color:color-mix(in srgb,var(--warn) 45%,transparent);color:var(--warn)}

/* rail: the cabinet */
.lib-rail{position:sticky;top:var(--s4);display:flex;flex-direction:column;gap:2px;min-width:0}
.lib-proj{display:flex;flex-direction:column;gap:var(--s2);margin:0 0 var(--s4)}
.lib-proj .sl{margin:0}
.lib-proj select{width:100%}
.lib-rail-l{margin:0 0 var(--s2)}
.lib-coll{all:unset;box-sizing:border-box;display:grid;grid-template-columns:1fr auto;gap:2px var(--s2);padding:var(--s2) var(--s3);border-radius:var(--r1);border-left:2px solid transparent;cursor:pointer;color:var(--ink-2);transition:background-color 140ms var(--ease-out)}
@media (hover:hover){.lib-coll:hover{background:var(--hover);color:var(--ink)}}
.lib-coll:focus-visible{outline:2px solid var(--act);outline-offset:1px}
.lib-coll.on{background:var(--sel);color:var(--ink);border-left-color:var(--ink)}
.lib-coll-t{font:500 13px/1.3 var(--body)}
.lib-coll.on .lib-coll-t{font-weight:600}
.lib-coll-n{font:500 11px/1.6 var(--mono);color:var(--muted)}
.lib-coll-d{grid-column:1/-1;font-size:11px;line-height:1.4;color:var(--muted);display:none}
.lib-coll.on .lib-coll-d{display:block}

/* toolbar */
.lib-main{min-width:0}
.lib-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);padding-bottom:var(--s3);margin-bottom:var(--s4);border-bottom:1px solid var(--line)}
.lib-h{font:600 18px/1.2 var(--display);margin:0;flex:1 1 100%;display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap}
.lib-h-p{font:400 12px/1 var(--mono);color:var(--muted)}
.lib-filters{flex:0 1 auto;min-width:0}
.lib-filters .seg-n{font:500 11px/1 var(--mono);color:var(--muted)}
.lib-view{margin-left:auto}

/* cards */
.lib-grp{margin-bottom:var(--s5)}
.lib-grp>.sl{margin:0 0 var(--s3)}
.lib-grp>.sl .mono{color:var(--faint);font-size:11px}
.lib-coll-note{margin:0 0 var(--s3);font-size:12px;color:var(--muted);max-width:68ch}
.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:var(--s3)}
.lib-card{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:4px;padding:var(--s2) var(--s2) var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);cursor:pointer;min-width:0;transition:border-color 140ms var(--ease-out),transform 140ms var(--ease-out)}
@media (hover:hover){.lib-card:hover{border-color:var(--line-2)}}
.lib-card:active{transform:scale(.985)}
.lib-card:focus-visible{outline:2px solid var(--act);outline-offset:2px}
.lib-card.is-sel{border-color:var(--ink)}
.lib-card.st-retired{opacity:.62}
.lib-card.st-needs .lib-thumb,.lib-card.st-draft .lib-thumb{border-style:dashed}
.lib-card-t{font:600 13px/1.3 var(--body);color:var(--ink);margin-top:var(--s1);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lib-card-m{font:400 11px/1.3 var(--mono);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nw{white-space:nowrap}
.lib-off{font:500 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);border:1px solid var(--line-2);border-radius:3px;padding:1px 4px;margin-right:6px}
.lib-card-f{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-top:auto;padding-top:var(--s1)}
.lib-card-f .pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.lib-sent{font:500 11px/1 var(--mono);color:var(--ai);display:inline-flex;align-items:center;gap:4px;flex:none}
.lib-sent::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ai)}

/* tinted stock per collection: flat colour, never gradients */
.lib-thumb{position:relative;display:grid;place-items:center;aspect-ratio:4/3;border-radius:var(--r1);border:1px solid var(--line);overflow:hidden;color:var(--ink-2)}
.lib-thumb.sm{width:72px;flex:none}
.lib-art{width:78%;height:auto;display:block}
.c-renders{background:color-mix(in srgb,var(--act) 9%,var(--surface));color:var(--act)}
.c-layouts{background:color-mix(in srgb,var(--ink) 5%,var(--surface));color:var(--ink-2)}
.c-brochures{background:color-mix(in srgb,var(--good) 8%,var(--surface));color:var(--good)}
.c-payment{background:color-mix(in srgb,var(--warn) 9%,var(--surface));color:var(--warn)}
.c-amenities{background:color-mix(in srgb,var(--good) 6%,var(--bg-2));color:var(--ink-2)}
.c-updates{background:color-mix(in srgb,var(--ink) 4%,var(--bg-2));color:var(--muted)}
.c-videos{background:color-mix(in srgb,var(--ink) 8%,var(--surface));color:var(--ink)}
.c-layouts .lib-art{background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:12px 12px}
.lib-x{position:absolute;inset:0;background:linear-gradient(to top right,transparent calc(50% - .5px),var(--muted) 50%,transparent calc(50% + .5px))}

/* list view */
.lib-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.lib-table,.lib-ktab{width:100%;border-collapse:collapse;font-size:13px}
.lib-table th,.lib-ktab th{font:500 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:var(--s2) var(--s2) var(--s2) 0;border-bottom:1px solid var(--line-2);white-space:nowrap}
.lib-table td{padding:var(--s2) var(--s2) var(--s2) 0;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.lib-table .num,.lib-ktab .num{text-align:right}
.lib-tr.is-sel td{background:var(--sel)}
.lib-tr-t{display:inline-flex;align-items:center;gap:var(--s2);color:var(--ink);font-weight:600;text-align:left}
.lib-tr-f{display:block;font:400 11px/1.3 var(--mono);color:var(--muted);padding-left:44px;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.lib-mini{display:inline-grid;place-items:center;width:36px;height:27px;border-radius:4px;border:1px solid var(--line);flex:none}
.lib-mini .lib-art{width:90%}

/* site updates: a dated ledger */
.lib-tl{list-style:none;margin:0;padding:0}
.lib-tl-i{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--line)}
.lib-tl-i:first-child{border-top:1px solid var(--line-2)}
.lib-tl-d{font-size:12px;color:var(--ink-2);padding-top:2px}
.lib-tl-b{display:flex;flex-direction:column;gap:var(--s2);min-width:0}
.lib-tl-h{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);font-size:15px}
.lib-tl-ph{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}
.lib-tl-i.st-draft .lib-tl-ph .lib-thumb{border-style:dashed}

/* markdown */
.lib-md{font-size:13px;line-height:1.55;color:var(--ink-2)}
.lib-md h4{font:600 15px/1.3 var(--display);color:var(--ink);margin:0 0 var(--s2)}
.lib-md p{margin:0 0 var(--s2)}
.lib-md ul{margin:0 0 var(--s2);padding-left:18px}
.lib-md li{margin:2px 0}
.lib-md code,.lib-dr-b code,.fn code{font:400 12px var(--mono);background:var(--bg-2);padding:0 4px;border-radius:3px}
.lib-md-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s3) var(--s4)}
.lib-md-empty{color:var(--muted);font-style:italic;margin:0}
.lib-send{border-left:2px solid var(--ai);padding:2px 0 2px var(--s3);margin:var(--s3) 0 0!important;color:var(--ink)}
.lib-send-k{display:block;font:500 10px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ai)}

/* drawer: the back of the card */
.lib-drawer{position:sticky;top:var(--s4);max-height:calc(100dvh - 120px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r3);min-width:0;animation:lib-in 180ms var(--ease-out)}
@keyframes lib-in{from{opacity:0;transform:translateX(8px)}}
.lib-dr-h{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s2) var(--s2) var(--s4);border-bottom:1px solid var(--line)}
.lib-dr-h .sheet-grip{display:none}
.lib-dr-file{flex:1;font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lib-dr-b{overflow-y:auto;padding:var(--s4);display:flex;flex-direction:column;gap:var(--s4);overscroll-behavior:contain}
.lib-prev{position:relative;display:grid;place-items:center;aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.lib-prev .lib-art{width:52%}
.lib-prev-l{position:absolute;left:var(--s2);bottom:var(--s2);font-size:11px;background:var(--surface);padding:2px 6px;border-radius:3px;color:var(--ink-2)}
.lib-dr-st{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);font-size:11px}
.lib-sec>.sl{margin:0 0 var(--s2)}
.lib-tags{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center}
.lib-tag-add .inp{height:26px;width:120px;font-size:12px}
.lib-when{margin:0 0 var(--s1);font-size:13px;color:var(--ink);border-left:2px solid var(--ai);padding-left:var(--s3)}
.lib-use{display:flex;align-items:baseline;gap:var(--s2);margin:0 0 var(--s2);font-size:12px;color:var(--muted)}
.lib-last,.lib-hist{list-style:none;margin:0;padding:0;font-size:12px}
.lib-last li,.lib-hist li{display:grid;grid-template-columns:76px minmax(0,1fr);gap:0 var(--s2);padding:6px 0;border-top:1px solid var(--line)}
.lib-last li>:last-child,.lib-hist li>:last-child{grid-column:2}
.lib-last .mono,.lib-hist .mono{font-size:11px;color:var(--muted)}
.lib-hist+.lnk{display:inline-block;margin-top:var(--s2);font-size:12px}
.lib-dr-f{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--s2);padding:var(--s3) var(--s4);border-top:1px solid var(--line)}
.small{font-size:12px}

/* markdown editor */
.lib-ed{display:grid;gap:var(--s3)}
.lib-ed textarea{width:100%;min-height:180px;font-size:12px;line-height:1.55;resize:vertical}
.lib-ed-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin-top:var(--s2)}
.lib-ed-tools .fn{margin:0}
.btn.ai{border-color:var(--ai-line);color:var(--ai)}
.btn.ai svg{width:14px;height:14px}
.lib-ed-pv{border:1px dashed var(--line-2);border-radius:var(--r2);padding:var(--s3)}
.lib-ed-pl{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--s2)}

/* add assets: a sheet over the catalogue */
.lib-scrim{position:fixed;inset:0;z-index:60}
.lib-add{position:fixed;z-index:61;top:50%;left:50%;transform:translate(-50%,-50%);width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r3);box-shadow:var(--shadow-3);animation:lib-pop 180ms var(--ease-out)}
@keyframes lib-pop{from{opacity:0;transform:translate(-50%,-48%) scale(.98)}}
.lib-add-h{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s3) var(--s3) var(--s5)}
.lib-add-h .sheet-grip{display:none}
.lib-add-h h3{flex:1;margin:0;font:600 18px/1.2 var(--display)}
.lib-steps{list-style:none;display:flex;gap:var(--s4);margin:0;padding:0 var(--s5) var(--s3);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);flex-wrap:wrap}
.lib-steps li{display:flex;align-items:center;gap:6px}
.lib-steps .mono{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--line-2);font-size:10px}
.lib-steps .cur{color:var(--ink);font-weight:600}
.lib-steps .cur .mono{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.lib-steps .done .mono{border-color:var(--good);color:var(--good)}
.lib-add-b{padding:var(--s4) var(--s5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--s3)}
.lib-add-f{display:flex;justify-content:flex-end;gap:var(--s2);padding:var(--s3) var(--s5);border-top:1px solid var(--line)}
.lib-drop{display:flex;flex-direction:column;align-items:center;gap:var(--s1);padding:var(--s6) var(--s4);border:1.5px dashed var(--line-2);border-radius:var(--r2);cursor:pointer;text-align:center;transition:background-color 140ms var(--ease-out),border-color 140ms var(--ease-out)}
.lib-drop.over{background:var(--hover);border-color:var(--ink-2)}
@media (hover:hover){.lib-drop:hover{background:var(--hover);border-color:var(--ink-2)}}
.lib-drop:focus-within{outline:2px solid var(--act);outline-offset:2px}
.lib-drop-i{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--line-2);margin-bottom:var(--s1)}
.lib-files{list-style:none;margin:0;padding:0;font-size:12px}
.lib-files li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--s2);padding:4px 0;border-top:1px solid var(--line)}
.lib-files li>.mono:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lib-f2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.lib-f2 .field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}
.lib-dd{display:flex;flex-direction:column;gap:var(--s1);padding-left:var(--s3)}
.lib-dd-f{font-size:11px;color:var(--muted)}
.lib-dd textarea{width:100%;font-size:12px;line-height:1.5}
.lib-sum{display:flex;align-items:baseline;gap:var(--s2);margin:0;font-size:13px}
.lib-path{margin:0;padding-left:20px;font-size:13px;color:var(--ink-2)}
.lib-path li{margin:4px 0}

/* What the AI knows: a ledger */
.lib-k{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5) var(--s6);max-width:1200px;margin:0 auto;padding:0 0 var(--s6)}
.lib-k>section{min-width:0}
.lib-k-live{grid-column:1/-1;border-bottom:1px solid var(--line-2);padding:var(--s2) 0 var(--s4)}
.lib-k-rel{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s3);margin:var(--s2) 0 var(--s1)}
.lib-k-rel .mono{font-size:12px;color:var(--ink-2)}
.lib-ktab{margin:var(--s3) 0 var(--s4)}
.lib-ktab td,.lib-ktab tbody th{padding:6px var(--s2) 6px 0;border-bottom:1px solid var(--line)}
.lib-ktab tbody th{font:500 13px/1.3 var(--body);color:var(--ink);text-transform:none;letter-spacing:0;border-bottom:1px solid var(--line)}
.lib-k-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5)}
.lib-k-list{margin:var(--s2) 0 0;font-size:12px;line-height:1.7;color:var(--ink-2)}
.lib-k-h{display:flex;align-items:baseline;justify-content:space-between}
.lib-pql{list-style:none;margin:var(--s2) 0 0;padding:0}
.lib-pq{display:grid;grid-template-columns:92px minmax(0,1fr);gap:var(--s2) var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line)}
.lib-pq-k{justify-self:start}
.lib-pq>.stamp{margin-top:1px}
.lib-pq-b{display:flex;flex-direction:column;gap:2px;font-size:13px;min-width:0}
.lib-pq-n{color:var(--warn)}
.lib-pq-a{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);flex-wrap:wrap}
.lib-pq-btns{display:flex;gap:var(--s2);flex-wrap:nowrap;margin-left:auto}
.lib-pq-why{grid-column:2;margin-top:-4px}
.lib-k-why{margin:var(--s1) 0 0}
.lib-vid{font-size:11px;color:var(--faint)}
.lib-kph{display:none;list-style:none;margin:var(--s3) 0;padding:0}
.lib-kph li{display:flex;flex-direction:column;gap:2px;padding:var(--s2) 0;border-top:1px solid var(--line);font-size:13px}
.lib-kph span{color:var(--ink-2);font-size:12px}
.lib-pq-a .stamp{margin-right:auto}
.lib-k-diff{grid-column:2;grid-row:2/span 3}
.lib-dv{margin-top:var(--s2);border:1px solid var(--line-2);border-radius:var(--r2);overflow:hidden;background:var(--surface)}
.lib-dv-h{display:flex;flex-direction:column;gap:2px;padding:var(--s3);border-bottom:1px solid var(--line)}
.lib-dv-h p{margin:2px 0 0}
.lib-dv-f{font-size:12px;color:var(--ink);word-break:break-all}
.lib-dv-r{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-top:var(--s2)}
.lib-dv-r>.mono{font-size:12px}
.d-n-add{color:var(--good)} .d-n-del{color:var(--bad)}
.lib-diff{width:100%;border-collapse:collapse;font-size:12px;line-height:1.55}
.lib-diff td{padding:1px var(--s2);vertical-align:top}
.lib-diff .ln{width:1%;text-align:right;color:var(--faint);white-space:nowrap;user-select:none;border-right:1px solid var(--line)}
.lib-diff .sg{width:1%;color:var(--muted);user-select:none}
.lib-diff .tx{white-space:pre-wrap;word-break:break-word;color:var(--ink-2)}
.lib-diff .d-add td{background:color-mix(in srgb,var(--good) 12%,transparent)}
.lib-diff .d-add .tx,.lib-diff .d-add .sg{color:var(--ink)}
.lib-diff .d-del td{background:color-mix(in srgb,var(--bad) 11%,transparent)}
.lib-diff .d-del .tx{color:var(--ink)}
.lib-diff-2{display:grid;grid-template-columns:1fr 1fr}
.lib-diff-2 .lib-diff+.lib-diff{border-left:1px solid var(--line-2)}
.lib-dv>.fn{padding:var(--s2) var(--s3);margin:0;border-top:1px solid var(--line)}
.lib-rels{list-style:none;margin:var(--s2) 0 0;padding:0}
.lib-rels>li{padding:var(--s3) 0;border-top:1px solid var(--line)}
.lib-rel-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s3);font-size:12px}
.lib-rels p{margin:var(--s1) 0}
.lib-rel-c{list-style:none;margin:var(--s2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s1);font-size:12px}
.lib-rel-c li{display:flex;align-items:center;gap:var(--s2)}

.lib-dr-scrim{display:none}
.lib-proj-m{display:none}
/* widths */
@media (max-width:1320px){
  .lib.has-dr{grid-template-columns:200px minmax(0,1fr)}
  .lib{grid-template-columns:200px minmax(0,1fr)}
  .lib-dr-scrim{display:block;position:fixed;inset:0;z-index:54}
  .lib-drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);max-height:none;border-radius:0;border-width:0 0 0 1px;z-index:55;box-shadow:var(--shadow-3)}
}
@media (max-width:1100px){
  .lib-kb{display:none}
  .lib-k{grid-template-columns:minmax(0,1fr)}
  .lib-k-diff{grid-column:auto;grid-row:auto}
}
@media (max-width:760px){
  .lib,.lib.has-dr{grid-template-columns:minmax(0,1fr);padding:0 0 var(--s6);gap:var(--s3)}
  .lib-k{padding:0 0 var(--s6)}
  .lib-kb{display:none}
  .lib-k-live .lib-tw{display:none}
  .lib-kph{display:block}
  .lib-pq{grid-template-columns:minmax(0,1fr)}
  .lib-pq-a,.lib-pq-why{grid-column:1}
  .lib-dv-mode{display:none}
  .lib-filters{-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}
  .lib-rail{position:static;flex-direction:row;overflow-x:auto;gap:var(--s1);padding-bottom:var(--s2);scrollbar-width:none;flex-wrap:nowrap}
  .lib-rail::-webkit-scrollbar{display:none}
  .lib-proj{flex:none;margin:0 var(--s2) 0 0}
  .lib-proj .sl{display:none}
  .lib-proj select{width:auto;min-height:32px}
  .lib-rail-l,.lib-coll-d,.lib-coll.on .lib-coll-d{display:none}
  .lib-coll{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:32px;border:1px solid var(--line-2);border-radius:999px;padding:0 var(--s3)}
  .lib-coll.on{border-color:var(--ink);background:var(--ink);color:var(--bg)}
  .lib-coll.on .lib-coll-n{color:var(--bg);opacity:.75}
  .lib-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;flex:1 1 100%;order:3}
  .lib-filters::-webkit-scrollbar{display:none}
  .lib-filters button{flex:none;height:32px}
  .view:has(>.lib-k) .phead{flex-wrap:wrap;height:auto;overflow:visible}
  .view:has(>.lib-k) .phead-a{flex-basis:100%;margin-left:0}
  .view:has(>.lib-k) .phead-a .btn{flex:1;min-height:40px}
  /* Library on a phone: head row = project + Add assets; one sticky strip = tabs + collections; then status and the grid */
  .view:has(>.lib) .phead{flex-wrap:nowrap;height:auto;overflow:visible;padding-bottom:var(--s2)}
  .view:has(>.lib) .phead-t>:not(:first-child),.view:has(>.lib) .phead-chip{display:none}
  .view:has(>.lib) .phead-t{display:none}
  .view:has(>.lib) .phead-a{flex:1;margin-left:0;flex-wrap:nowrap;min-width:0}
  .lib-proj-m{display:block;flex:1 1 0;min-width:0}
  .view:has(>.lib) .phead-a{width:100%}
  .lib-proj-m select{width:100%;min-height:44px}
  .view:has(>.lib) .phead-a .lib-addbtn{flex:none;width:44px;min-height:44px;padding:0;justify-content:center}
  .lib-add-l{display:none}
  .view:has(>.lib-k) .phead-a [data-act="libPublish"][disabled]{display:none}
  .view:has(>.lib-k) .phead:not(:has(.phead-a .btn:not([disabled]))){display:none}
  .lib-k-live{padding-top:0}
  .lib-k{gap:var(--s4)}
  .lib-rail,.lib-h{display:none}
  .lib-bar{flex-wrap:nowrap;margin-bottom:var(--s3);padding-bottom:var(--s2);gap:var(--s2)}
  .lib-bar .lib-filters{order:0;flex:1 1 auto}
  .lib-bar .lib-view{order:1;flex:none}
  .lib-grp>.sl{margin-bottom:var(--s2)}
  .lib-view{order:2}
  .lib-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}
  .lib-card-f{flex-wrap:wrap}
  .lib-drawer{top:auto;left:0;right:0;width:auto;max-height:88dvh;border-radius:var(--r3) var(--r3) 0 0;border-width:1px 0 0;animation:lib-up 240ms var(--ease-drawer)}
  @keyframes lib-up{from{transform:translateY(100%)}}
  @keyframes lib-down{to{transform:translateY(100%)}}
  @keyframes lib-fade{to{opacity:0}}
  .lib-drawer.lib-leave,.lib-add.lib-leave{animation:lib-down 180ms var(--ease-drawer) forwards}
  .lib-scrim.lib-leave,.lib-dr-scrim.lib-leave{animation:lib-fade 180ms ease-out forwards}
  .lib-dr-h{flex-wrap:wrap;padding-top:var(--s1)}
  .lib-dr-h .sheet-grip{display:block;flex-basis:100%;margin:0 auto var(--s1)}
  .lib-dr-f .btn{flex:1 1 auto;min-height:40px}
  .lib-add{top:auto;bottom:0;left:0;transform:none;width:100%;max-height:92dvh;border-radius:var(--r3) var(--r3) 0 0;animation:lib-up 240ms var(--ease-drawer)}
  .lib-add-h .sheet-grip{display:block}
  .lib-add-b,.lib-steps,.lib-add-f{padding-left:var(--s4);padding-right:var(--s4)}
  .lib-add-f .btn{flex:1;min-height:40px}
  .lib-f2,.lib-k-cols{grid-template-columns:1fr}
  .lib-tl-i{grid-template-columns:minmax(0,1fr);gap:var(--s1)}
  .lib-diff-2{grid-template-columns:minmax(0,1fr)}
  .lib-diff-2 .lib-diff+.lib-diff{border-left:0;border-top:1px solid var(--line-2)}
  .lib .lnk,.lib-k .lnk{min-height:32px;display:inline-flex;align-items:center}
  .lib-pq-a .btn{min-height:32px}
}
@media (prefers-reduced-motion:reduce){
  .lib-drawer,.lib-add,.lib-drawer.lib-leave,.lib-add.lib-leave,.lib-scrim.lib-leave,.lib-dr-scrim.lib-leave{animation:none}
  .lib-card,.lib-coll,.lib-drop{transition:none}
}
.lib-dr-b>*,.lib-add-b>*{flex:none}
.lib-ed textarea,.lib-dd textarea{font-family:var(--mono)}
/* the shell sizes every direct child of .view; the overlays opt out */
.view:not(.full)>.lib-add{width:min(620px,calc(100vw - 32px));max-width:none;margin:0}
.view:not(.full)>.lib-scrim,.view:not(.full)>.lib-dr-scrim{width:auto;max-width:none;margin:0}
@media (max-width:760px){.view:not(.full)>.lib-add{width:100%}}
.lib-k-foot{margin:var(--s3) 0 0}
.lib-pq-a .pill{margin-right:auto}
/* release 4: facts grouped by topic, each with its voice-note source */
.lib-k-rt{font:600 15px/1.3 var(--display);color:var(--ink)}
.lib-dv-t{font:600 13px/1.4 var(--body);color:var(--ink)}
.lib-diff.no-ln .ln{display:none}
.lib-diff .d-grp td{padding:var(--s3) var(--s2) var(--s1);background:var(--bg-2);border-top:1px solid var(--line)}
.lib-diff .d-grp b{font:600 12px/1.3 var(--body);color:var(--ink);margin-right:var(--s2)}
.lib-diff .d-grp .mono{font-size:11px;color:var(--faint);word-break:break-all}
.lib-diff .tx:not(.mono){font-size:13px;line-height:1.5}
.lib-src{display:block;font:400 11px/1.4 var(--mono);color:var(--muted);margin-top:1px}
.lib-rel-t{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px var(--s3)}
.lib-rel-t li{justify-content:space-between}
.lib-k-conf{min-width:0}
.lib-cf{list-style:none;margin:var(--s2) 0 0;padding:0}
.lib-cf li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:2px var(--s3);padding:var(--s2) 0;border-top:1px solid var(--line);font-size:13px;align-items:baseline}
.lib-cf li>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.lib-cf-id{font-size:11px;color:var(--warn)}
.lib-cf-at{font-size:11px;color:var(--muted);white-space:nowrap}
.lib-cf-sub{display:block;margin:var(--s4) 0 0}
@media (max-width:760px){
  .lib-cf li{grid-template-columns:44px minmax(0,1fr)}
  .lib-cf-at{grid-column:2;white-space:normal}
  .lib-rel-t{grid-template-columns:1fr 1fr}
}
/* ---------- Updates: a site diary. Done entries are solid ink; planned ones are outlined and quieter, below a "Today" rule ---------- */
.up{max-width:880px;margin:0 auto;padding:0 0 var(--s6)}
.view:not(.full)>.up{max-width:880px}
.up-proj{margin:0 0 var(--s4)}
.up-hold{margin:0 0 var(--s4)}
.up-tl{list-style:none;margin:0;padding:0;position:relative}
.up-tl::before{content:"";position:absolute;left:111px;top:6px;bottom:6px;width:1px;background:var(--line-2)}
.up-i{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr);gap:0 var(--s5);padding:0 0 var(--s5)}
.up-dot{position:absolute;left:107px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 3px var(--bg)}
.up-d{text-align:right;padding-right:var(--s2)}
.up-date{display:block;font-size:12px;color:var(--ink);line-height:1.6}
.up-was{display:block;font-size:11px;color:var(--faint);text-decoration:line-through}
.up-b{display:flex;flex-direction:column;gap:var(--s2);min-width:0;padding-left:var(--s2)}
.up-h{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}
.up-note{margin:0;font-size:14px;line-height:1.55;color:var(--ink);white-space:pre-line;text-wrap:pretty}
.up-ai{margin:0;font-size:13px;line-height:1.5;color:var(--ink-2);border-left:2px solid var(--ai);padding-left:var(--s3)}
.up-f .byline{font-size:12px;color:var(--muted)}
.up-f .mono{font-size:11px;color:var(--faint)}
.up-acts{display:flex;flex-wrap:wrap;gap:var(--s2)}
.up-att{display:flex;flex-wrap:wrap;gap:var(--s2)}
.up-th{display:grid;place-items:center;width:88px;aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--r1);background:color-mix(in srgb,var(--ink) 4%,var(--bg-2));color:var(--muted);position:relative;overflow:hidden}
.up-th.pdf{background:color-mix(in srgb,var(--warn) 9%,var(--surface));color:var(--warn);font-size:11px}
.up-th-n{position:absolute;left:0;right:0;bottom:0;font:400 10px/1.4 var(--mono);padding:1px 4px;background:var(--surface);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* planned and delayed: the future, drawn quieter */
.up-planned .up-dot,.up-delayed .up-dot{background:var(--bg);box-shadow:0 0 0 3px var(--bg),inset 0 0 0 1.5px var(--act)}
.up-delayed .up-dot{box-shadow:0 0 0 3px var(--bg),inset 0 0 0 1.5px var(--warn)}
.up-planned .up-note,.up-delayed .up-note{color:var(--ink-2)}
.up-planned .up-b,.up-delayed .up-b{border:1px dashed var(--line-2);border-radius:var(--r2);padding:var(--s3);margin-left:var(--s2)}
.up-wait .up-b{opacity:.85}
.up-now{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr);gap:0 var(--s5);margin:0 0 var(--s5)}
.up-now .mono{grid-column:2;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--act);padding:2px 0 2px var(--s2);border-top:1px solid var(--act-line,var(--act));margin-left:var(--s2)}
/* sheet */
.up-sheet{width:min(760px,calc(100vw - 32px))}
.view:not(.full)>.up-sheet{width:min(760px,calc(100vw - 32px))}
.up-f2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.up-sheet .field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}
.up-comp{border:1px solid var(--line-2);border-radius:var(--r2);background:var(--surface)}
.up-comp textarea{width:100%;border:0;background:transparent;min-height:120px;resize:vertical;font-size:14px;line-height:1.5}
.up-comp-b{display:flex;align-items:center;gap:var(--s2);padding:var(--s2);border-top:1px solid var(--line)}
.up-mic svg{width:14px;height:14px}
.up-wave{display:inline-flex;align-items:center;gap:2px;height:20px}
.up-wave i{display:block;width:3px;height:100%;border-radius:2px;background:var(--act);animation:up-bar 900ms ease-in-out infinite alternate;transform-origin:center}
@keyframes up-bar{from{transform:scaleY(.2)}to{transform:scaleY(1)}}
.up-drop{padding:var(--s4)}
.up-cmp{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.up-cmp>section{min-width:0}
.up-cmp .sl{margin:0 0 var(--s2)}
.up-cmp .rule-ai{border-left:2px solid var(--ai);padding-left:var(--s3)}
.up-cmp-h{display:flex;justify-content:space-between;align-items:baseline}
.up-cmp textarea{width:100%;font-size:12px;line-height:1.5}
.up-rules{list-style:none;margin:0;padding:var(--s3) 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:var(--s2);font-size:13px}
.up-rules li{display:flex;align-items:baseline;gap:var(--s2)}
.lib-md-meta{font:400 11px/1.5 var(--mono);color:var(--muted)}
.lib-send.no{border-left-color:var(--bad)}
.lib-send.no .lib-send-k{color:var(--bad)}
.lib-coll-go .lib-coll-n{color:var(--act)}
.lib-k-upd{min-width:0}
.lib-k-ul li{flex-wrap:wrap}
@media (max-width:760px){
  .up{padding:0 0 var(--s6)}
  .up-proj{display:flex;flex-wrap:nowrap;overflow-x:auto;width:100%;scrollbar-width:none}
  .up-proj button{flex:none;height:32px}
  .up-tl::before{left:5px}
  .up-i,.up-now{grid-template-columns:minmax(0,1fr);padding-left:22px}
  .up-dot{left:1px}
  .up-d{text-align:left;padding:0 0 var(--s1)}
  .up-date,.up-was{display:inline;margin-right:var(--s2)}
  .up-now .mono{grid-column:1;margin-left:0}
  .up-planned .up-b,.up-delayed .up-b{margin-left:0}
  .up-b{padding-left:0}
  .up-f2,.up-cmp{grid-template-columns:1fr}
  .up-acts .btn{min-height:32px}
  .view:has(>.up) .phead-a .btn.primary{flex:none}
}
@media (prefers-reduced-motion:reduce){.up-wave i{animation:none;transform:scaleY(.6)}}
/* live data: uploaded images show as themselves; the v1 line under the toolbar */
.lib-img{width:100%;height:100%;object-fit:cover;display:block}
.lib-v1{margin:0 0 var(--s3)}
