/* 归档 / 收藏 / 顶栏 search (assets/search.js, assets/search-ui.js, assets/archive-search.js, assets/top-search.js). Theme tokens only; motion off under reduced motion / 减少动效. */
.asearch{max-width:1180px;margin:0 auto;padding:0 28px 18px;display:grid;gap:12px}
.asrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.asrow .sbox{flex:1 1 320px}
.acount{color:var(--mu);font:12px ui-monospace,monospace;white-space:nowrap}
.sbox{position:relative;display:flex;align-items:center;min-width:0}
.sbox .si{position:absolute;left:14px;color:var(--mu);pointer-events:none}
.sbox input{width:100%;min-width:0;font:inherit;font-size:15px;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:99px;padding:11px 40px 11px 40px;outline:none;appearance:none;-webkit-appearance:none;transition:border-color .15s,box-shadow .15s}
.sbox input::-webkit-search-cancel-button{display:none}.sbox input::placeholder{color:var(--mu);opacity:.85}
.sbox input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.sbox .sx{position:absolute;right:8px;width:28px;height:28px;border:0;border-radius:99px;background:none;color:var(--mu);font-size:18px;line-height:1;cursor:pointer}
.sbox .sx:hover,.sbox .sx:focus-visible{background:color-mix(in srgb,var(--fg) 8%,transparent);color:var(--fg)}
.acats{display:flex;flex-wrap:wrap;gap:6px}
.acats button{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;color:var(--mu);background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:5px 12px;cursor:pointer}
.acats button b{font:600 11px ui-monospace,monospace;opacity:.8}
.acats button[aria-checked=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.acats button:disabled{opacity:.4;cursor:default}
.acats .dot{width:8px;height:8px;border-radius:99px;background:var(--c,var(--mu))}
.sres{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:14px;row-gap:4px;align-items:baseline;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius,14px);color:var(--fg);text-decoration:none}
.sr .cat{grid-row:1;align-self:center}.sr .st{grid-column:2;font-weight:650;font-size:16px;min-width:0}
.sr .sgo{grid-column:3;grid-row:1;color:var(--mu);font-size:12px;white-space:nowrap}
.sr .ss,.sr .sd,.sr .sm{grid-column:2/4;min-width:0}.sr .ss{color:var(--mu);font-size:13px}.sr .sd{font-size:13px;line-height:1.55;opacity:.9}
.sr .sm{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--mu);font:11px ui-monospace,monospace}.sr .sm i{font-style:normal}
.sr:hover,.sr:focus-visible{border-color:var(--accent)}.sr:hover .sgo,.sr:focus-visible .sgo{color:var(--accent)}
.sres mark,.fsec mark,.tfavs mark{background:color-mix(in srgb,var(--accent) 30%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.smore,.snone{color:var(--mu);text-align:center;padding:14px;font-size:13px}
@media (prefers-reduced-motion:no-preference){html:not(.dd-rm) .sres.in>li{animation:sr-in .26s cubic-bezier(.22,1,.36,1) backwards}html:not(.dd-rm) .sres.in>li:nth-child(2){animation-delay:.03s}html:not(.dd-rm) .sres.in>li:nth-child(3){animation-delay:.06s}html:not(.dd-rm) .sres.in>li:nth-child(n+4){animation-delay:.09s}}
@keyframes sr-in{from{opacity:0;transform:translateY(6px)}}
.fsearch{flex:1 1 260px;max-width:420px;min-width:0}.fsearch .sbox input{padding-top:8px;padding-bottom:8px;font-size:14px}
@media(max-width:760px){.asearch{padding:0 14px 14px}.sr{grid-template-columns:auto minmax(0,1fr);padding:12px 14px}.sr .sgo{display:none}.sr .ss,.sr .sd,.sr .sm{grid-column:1/3}.fsearch{flex-basis:100%;max-width:none}}
.tfavs>[hidden],.sres[hidden],.acats[hidden],.asearch[hidden],.ddsearch[hidden]{display:none!important}
/* Top-bar search: centered dialog, dim + blur backdrop. Dialog is outside .top (that bar's own backdrop-filter would trap position:fixed). */
body.ddsearch-open{overflow:hidden}
.ddsearch{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}
.ddsearch-bg{position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 58%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15);cursor:pointer}
.ddsearch-dlg{position:relative;z-index:1;width:min(680px,100%);max-height:min(78vh,720px);display:flex;flex-direction:column;gap:10px;box-sizing:border-box;padding:14px 14px 12px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:min(calc(var(--radius) + 6px),20px);box-shadow:var(--shadow),0 30px 70px -28px rgba(0,0,0,.45);overflow:hidden}
.ddsearch-hd{display:flex;align-items:center;gap:8px}.ddsearch-hd h2{margin:0;flex:1;font-size:16px;font-weight:650}
.ddsearch-x{width:32px;height:32px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;font-size:16px;line-height:1;cursor:pointer}
.ddsearch-x:hover,.ddsearch-x:focus-visible{border-color:var(--accent);outline:none}
.ddsearch-x:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.ddsearch-note{margin:0;min-height:1.2em;color:var(--mu);font:12px ui-monospace,monospace}
.ddsearch-dlg .sbox input{font-size:16px}
.ddsearch-dlg .sres{overflow:auto;min-height:0;overscroll-behavior:contain}
.ddsearch-hint{margin:0;color:var(--mu);font-size:12px}
.ddsearch-hint kbd{font:11px ui-monospace,monospace;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 4px}
@media(max-width:640px){.ddsearch{padding:8px;align-items:center}.ddsearch-dlg{width:100%;max-height:calc(100dvh - 16px);border-radius:min(var(--radius),16px)}}
@media (prefers-reduced-motion:no-preference){html:not(.dd-rm) .ddsearch:not(.out) .ddsearch-bg{animation:ddsearch-bg .2s ease}html:not(.dd-rm) .ddsearch:not(.out) .ddsearch-dlg{animation:ddsearch-in .22s cubic-bezier(.22,1,.36,1)}}
.ddsearch.out .ddsearch-bg{opacity:0;transition:opacity .16s ease}
.ddsearch.out .ddsearch-dlg{opacity:0;transform:translateY(8px) scale(.98);transition:opacity .16s ease,transform .16s ease}
@keyframes ddsearch-in{from{opacity:0;transform:translateY(8px) scale(.98)}}
@keyframes ddsearch-bg{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.ddsearch.out .ddsearch-bg,.ddsearch.out .ddsearch-dlg{transition:none}}
html.dd-rm .ddsearch-bg,html.dd-rm .ddsearch-dlg{animation:none!important}
html.dd-rm .ddsearch.out .ddsearch-bg,html.dd-rm .ddsearch.out .ddsearch-dlg{transition:none!important}
