/* Query-aware full-vault search. The single-column rows favor scanning and the
   worker-backed controls keep every raw hit reachable without a giant render. */
.cv-search-panel{scroll-margin-top:18px;display:flex;flex-direction:column;gap:15px;padding:27px;border:1px solid rgba(177,157,218,.2);border-radius:22px;background:radial-gradient(circle at 82% 0,rgba(116,83,164,.12),transparent 36%),linear-gradient(145deg,rgba(28,24,35,.98),rgba(13,13,16,.99));box-shadow:0 28px 70px rgba(0,0,0,.32);overflow:hidden}
.cv-search-panel[hidden]{display:none!important}
.cv-search-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.cv-search-head-copy{min-width:0}
.cv-search-kicker{margin-bottom:7px;color:#bca5eb;font:800 8px/1.2 'DM Sans',sans-serif;letter-spacing:1.85px}
.cv-search-title{margin:0;color:#fff;font:850 28px/1.08 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:-.65px;overflow-wrap:anywhere}
.cv-search-close{flex:0 0 auto;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.03);color:#a19aa7;padding:8px 13px;font:700 9px/1 'DM Sans',sans-serif;cursor:pointer}
.cv-search-close:hover{border-color:rgba(188,165,235,.4);color:#fff;background:rgba(177,157,218,.08)}
.cv-search-summary{min-height:17px;color:#aaa2af;font-size:11px;line-height:1.5}

.cv-search-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 4px;scrollbar-width:thin}
.cv-search-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:37px;padding:9px 13px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:rgba(255,255,255,.022);color:#928b98;font:750 10px/1 'DM Sans',sans-serif;cursor:pointer}
.cv-search-tab strong{min-width:18px;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.06);color:#b0a9b6;font-size:8px;text-align:center}
.cv-search-tab:hover{border-color:rgba(188,165,235,.32);color:#e9e0f3}
.cv-search-tab.active{border-color:rgba(188,165,235,.48);background:linear-gradient(135deg,rgba(155,138,191,.24),rgba(117,90,166,.15));color:#f2ebff}
.cv-search-tab.active strong{background:#b29dde;color:#17131c}

.cv-search-tools{display:grid;grid-template-columns:minmax(150px,1fr) minmax(185px,1.25fr) auto auto;align-items:end;gap:9px;padding:11px;border:1px solid rgba(255,255,255,.065);border-radius:14px;background:rgba(0,0,0,.16)}
.cv-search-control{min-width:0;display:flex;flex-direction:column;gap:5px;color:#716a77;font:750 7px/1 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.75px}
.cv-search-select{width:100%;height:36px;padding:0 31px 0 11px;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:#17151a;color:#d9d1e1;font:700 10px/1 'DM Sans',sans-serif;cursor:pointer;color-scheme:dark}
.cv-search-select:hover{border-color:rgba(188,165,235,.3)}
.cv-search-group-toggle{height:36px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:rgba(255,255,255,.025);color:#99919e;font:700 9px/1 'DM Sans',sans-serif;white-space:nowrap;cursor:pointer}
.cv-search-toggle-dot{width:22px;height:13px;position:relative;border-radius:999px;background:#343039;transition:background .16s ease}
.cv-search-toggle-dot:after{content:'';position:absolute;left:2px;top:2px;width:9px;height:9px;border-radius:50%;background:#8d8492;transition:transform .16s ease,background .16s ease}
.cv-search-group-toggle.active{border-color:rgba(188,165,235,.29);color:#d9cbed;background:rgba(155,138,191,.08)}
.cv-search-group-toggle.active .cv-search-toggle-dot{background:#8068ac}
.cv-search-group-toggle.active .cv-search-toggle-dot:after{transform:translateX(9px);background:#fff}
.cv-search-tools-note{align-self:center;color:#9b94a0;font:650 8px/1.2 'DM Sans',sans-serif;white-space:nowrap}

.cv-search-content{min-width:0}
.cv-search-section{display:flex;flex-direction:column;gap:9px;margin-top:18px}
.cv-search-section:first-child{margin-top:0}
.cv-search-section+.cv-search-section{padding-top:17px;border-top:1px solid rgba(255,255,255,.065)}
.cv-search-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:0 2px}
.cv-search-section-head>div{min-width:0}
.cv-search-section-head h4{margin:0;color:#eee9f3;font:800 13px/1.2 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:-.1px}
.cv-search-section-head span{display:block;margin-top:3px;color:#9b95a1;font-size:8px;line-height:1.35}
.cv-search-section-head>strong{color:#ae9acb;font:800 9px/1 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.5px}
.cv-search-list{display:flex;flex-direction:column;gap:7px;min-width:0}

.cv-search-result.artist-hit{min-width:0;width:100%;display:block!important;padding:0!important;border:1px solid rgba(255,255,255,.075);border-radius:14px;background:rgba(255,255,255,.024);color:inherit;font-family:inherit;overflow:hidden;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}
.cv-search-result:not(.artist-hit){min-width:0;width:100%;display:block;padding:0;border:1px solid rgba(255,255,255,.075);border-radius:14px;background:rgba(255,255,255,.024);color:inherit;font-family:inherit;overflow:hidden;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}
.cv-search-result:hover{transform:translateY(-1px);border-color:rgba(181,158,226,.34);background:rgba(155,138,191,.06);box-shadow:0 12px 26px rgba(0,0,0,.18)}
.cv-search-result-main{min-width:0;width:100%;display:grid;grid-template-columns:56px minmax(0,1fr) 116px;align-items:center;gap:14px;padding:11px 13px;border:0;background:transparent;color:inherit;text-align:left;font-family:inherit;cursor:pointer}
.cv-search-result-icon,.cv-search-result-art{width:56px;height:56px;display:grid;place-items:center;align-self:center;border:1px solid rgba(180,158,224,.19);border-radius:11px;background:linear-gradient(145deg,rgba(155,138,191,.17),rgba(255,255,255,.025));color:#bba5e8;font:800 20px/1 Georgia,serif;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.015)}
.cv-search-result-art{position:relative;background:radial-gradient(circle at 35% 30%,rgba(183,160,229,.19),transparent 48%),#18151e}
.cv-search-result-art img{width:100%;height:100%;display:block;object-fit:cover}
.cv-search-art-placeholder,.cv-search-result-art .art-placeholder{display:grid;place-items:center;width:100%;height:100%;color:#b9a1e7;font-size:19px}
.cv-search-result-art.cv-art-pending:after,.cv-search-result-art.cv-album-art-pending:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.09) 50%,transparent 75%);background-size:220% 100%;animation:cvSearchShimmer 1.25s ease-in-out infinite}
.cv-search-result-album .cv-search-result-art{color:#73d9e5;border-color:rgba(103,232,249,.18);background:radial-gradient(circle at 35% 30%,rgba(80,205,220,.16),transparent 48%),#111b1e}
.cv-search-result-artist .cv-search-result-icon{color:#efb8d4;border-color:rgba(239,184,212,.18);background:rgba(204,111,156,.08)}
.cv-search-result-chart .cv-search-result-icon{color:#e3bf82;border-color:rgba(227,191,130,.18);background:rgba(193,144,65,.08)}
.cv-search-result-body{min-width:0;display:flex;flex-direction:column;gap:3px}
.cv-search-result-eyebrow{display:flex;align-items:center;gap:5px;margin-bottom:1px}
.cv-search-type-pill,.cv-search-exact-pill{display:inline-flex;padding:3px 6px;border:1px solid rgba(177,157,218,.13);border-radius:999px;background:rgba(155,138,191,.06);color:#9e8ab9;font:800 6px/1 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.62px}
.cv-search-type-album{color:#67d4df;border-color:rgba(103,232,249,.15);background:rgba(42,157,170,.07)}
.cv-search-type-artist{color:#e9accb;border-color:rgba(239,184,212,.16);background:rgba(204,111,156,.07)}
.cv-search-type-chart{color:#dbb979;border-color:rgba(227,191,130,.16);background:rgba(193,144,65,.07)}
.cv-search-exact-pill{color:#86ddb0;border-color:rgba(95,224,153,.16);background:rgba(48,185,111,.07)}
.cv-search-result-title{display:block;color:#f5f2f8;font:800 15px/1.2 'Helvetica Neue',Helvetica,Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-search-result-subtitle{display:block;color:#aaa2af;font-size:10px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-search-result-badges{display:flex;flex-wrap:wrap;gap:4px;min-width:0;margin-top:5px}
.cv-search-badge{flex:0 0 auto;max-width:160px;padding:3px 6px;border:1px solid rgba(177,157,218,.13);border-radius:999px;background:rgba(155,138,191,.055);color:#a092b1;font:750 7px/1 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-search-badge-more{color:#9f97a7}
.cv-search-result-meta{min-width:0;display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}
.cv-search-result-meta strong{color:#ddcff5;font:850 15px/1 'Helvetica Neue',sans-serif}
.cv-search-result-meta>span:not(.cv-search-result-action){color:#9b949f;font-size:7px;text-transform:uppercase;letter-spacing:.62px}
.cv-search-result-action{margin-top:6px;color:#ad96db;font:750 8px/1.2 'DM Sans',sans-serif;white-space:nowrap}

.cv-search-variants{border-top:1px solid rgba(255,255,255,.055);background:rgba(0,0,0,.11)}
.cv-search-variants summary{padding:8px 14px;color:#9283a9;font:750 8px/1.2 'DM Sans',sans-serif;cursor:pointer;list-style-position:inside}
.cv-search-variants[open] summary{color:#c8b5e7}
.cv-search-variant-list{display:flex;flex-direction:column;padding:0 10px 9px 29px}
.cv-search-variant{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:0;border-top:1px solid rgba(255,255,255,.045);background:transparent;color:inherit;text-align:left;font-family:inherit;cursor:pointer}
.cv-search-variant:hover{background:rgba(177,157,218,.05)}
.cv-search-variant-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.cv-search-variant-copy strong{color:#ddd7e3;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-search-variant-copy>span{color:#9d97a1;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-search-variant-meta{display:flex;gap:4px;flex:0 0 auto}

.cv-search-artist-hero{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px;border:1px solid rgba(196,172,240,.23);border-radius:16px;background:radial-gradient(circle at 7% 30%,rgba(205,158,210,.12),transparent 30%),linear-gradient(120deg,rgba(130,100,178,.16),rgba(255,255,255,.025));box-shadow:inset 0 1px rgba(255,255,255,.025)}
.cv-search-artist-monogram{width:72px;height:72px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(235,184,216,.22);border-radius:18px;background:linear-gradient(145deg,rgba(204,111,156,.2),rgba(133,104,187,.12));color:#f2c6dc;font:850 30px/1 'Helvetica Neue',sans-serif}
.cv-search-artist-monogram img{width:100%;height:100%;display:block;object-fit:cover}
[data-cv-photo-source="reviewed-official-video"],[data-cv-photo-source="reviewed-wikimedia"]{position:relative;cursor:zoom-in;background:#050505}
[data-cv-photo-source="reviewed-official-video"] img{object-fit:contain!important;background:#050505}
[data-cv-photo-source="reviewed-official-video"]:focus-visible,[data-cv-photo-source="reviewed-wikimedia"]:focus-visible{outline:2px solid #f2c6dc;outline-offset:3px}
.cv-artist-photo-lightbox[hidden]{display:none!important}
.cv-artist-photo-lightbox{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.94);cursor:zoom-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.cv-artist-photo-lightbox-frame{position:relative;display:flex;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);margin:0;flex-direction:column;align-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#080808;box-shadow:0 22px 70px rgba(0,0,0,.7);cursor:default}
.cv-artist-photo-lightbox-image{display:block;max-width:calc(100vw - 48px);max-height:calc(100vh - 110px);object-fit:contain;background:#050505}
.cv-artist-photo-lightbox-credit{box-sizing:border-box;width:100%;min-height:35px;padding:10px 50px;color:#aaa3ae;background:#0b0a0c;font:650 9px/1.45 'DM Sans',sans-serif;text-align:center}
.cv-artist-photo-lightbox-credit a{color:#d3c2ee;text-decoration:none}
.cv-artist-photo-lightbox-credit a:hover{text-decoration:underline}
.cv-artist-photo-lightbox-close{position:absolute;top:9px;right:9px;z-index:2;width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font:300 25px/1 Arial,sans-serif;cursor:pointer}
.cv-artist-photo-lightbox-close:hover{background:rgba(66,52,81,.94)}
.cv-artist-photo-lightbox-close:focus-visible,.cv-artist-photo-lightbox-credit a:focus-visible{outline:2px solid #f2c6dc;outline-offset:2px}
.cv-search-artist-hero-body{min-width:0}
.cv-search-artist-label{display:block;margin-bottom:4px;color:#b9a4dc;font:800 7px/1 'DM Sans',sans-serif;letter-spacing:1.1px}
.cv-search-artist-hero h4{margin:0;color:#fff;font:850 21px/1.08 'Helvetica Neue',sans-serif;letter-spacing:-.35px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-search-artist-hero p{margin:6px 0 0;color:#9a919f;font-size:10px}
.cv-search-artist-cta,.cv-search-section-more,.cv-search-load-more{border:1px solid rgba(185,163,230,.3);border-radius:10px;background:rgba(155,138,191,.1);color:#ccb9ee;font:750 9px/1 'DM Sans',sans-serif;cursor:pointer}
.cv-search-artist-cta{min-height:39px;padding:0 13px;white-space:nowrap}
.cv-search-artist-cta:hover,.cv-search-section-more:hover,.cv-search-load-more:hover{border-color:rgba(195,172,240,.55);background:rgba(155,138,191,.18);color:#fff}
.cv-search-section-more{align-self:center;margin-top:2px;padding:9px 13px}

.cv-search-foot{min-height:39px;display:flex;align-items:center;justify-content:center;gap:12px;padding:7px 2px 0;color:#9d97a1;font-size:9px;text-align:center}
.cv-search-load-more{padding:9px 15px}
.cv-search-load-more:disabled{opacity:.55;cursor:wait}
.cv-search-all-loaded{display:inline-flex;align-items:center;gap:4px;color:#82788e;font-weight:700}
.cv-search-all-loaded:before{content:'✓';color:#70c99a}

.cv-search-loading{min-height:75px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:center;padding:14px 2px;color:#ddd4e8}
.cv-search-loading strong{font-size:12px}
.cv-search-loading>span:last-child{grid-column:2;color:#9e98a2;font-size:9px;margin-top:3px}
.cv-search-spinner{grid-row:1/3;width:25px;height:25px;border:2px solid rgba(185,163,230,.18);border-top-color:#b9a3e5;border-radius:50%;animation:cvSearchSpin .8s linear infinite}
.cv-search-skeletons{display:flex;flex-direction:column;gap:7px}
.cv-search-skeleton{height:79px;border-radius:14px;background:linear-gradient(100deg,rgba(255,255,255,.025) 30%,rgba(177,157,218,.08) 50%,rgba(255,255,255,.025) 70%);background-size:220% 100%;animation:cvSearchShimmer 1.25s ease-in-out infinite}
.cv-search-empty{min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;border:1px dashed rgba(255,255,255,.1);border-radius:14px;color:#817a86;font-size:11px;text-align:center}
.cv-search-empty strong{color:#e5dfe9;font-size:13px}
.cv-search-result-main:focus-visible,.cv-search-variant:focus-visible,.cv-search-tab:focus-visible,.cv-search-close:focus-visible,.cv-search-select:focus-visible,.cv-search-group-toggle:focus-visible,.cv-search-artist-cta:focus-visible,.cv-search-section-more:focus-visible,.cv-search-load-more:focus-visible{outline:2px solid #c1a9ee;outline-offset:2px}

@keyframes cvSearchSpin{to{transform:rotate(360deg)}}
@keyframes cvSearchShimmer{to{background-position:-220% 0}}

@media(max-width:900px){
  .cv-search-tools{grid-template-columns:minmax(145px,1fr) minmax(175px,1.2fr) auto}
  .cv-search-tools-note{display:none}
}
@media(max-width:760px){
  .cv-search-panel{padding:21px;border-radius:18px}
  .cv-search-tools{grid-template-columns:1fr 1fr}
  .cv-search-group-toggle{justify-self:start}
  .cv-search-result-main{grid-template-columns:52px minmax(0,1fr) 105px;gap:12px}
  .cv-search-result-icon,.cv-search-result-art{width:52px;height:52px}
  .cv-search-artist-hero{grid-template-columns:62px minmax(0,1fr)}
  .cv-search-artist-monogram{width:62px;height:62px;font-size:26px}
  .cv-search-artist-cta{grid-column:2;justify-self:start}
}
@media(max-width:540px){
  .cv-artist-photo-lightbox{padding:10px}
  .cv-artist-photo-lightbox-frame{max-width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
  .cv-artist-photo-lightbox-image{max-width:calc(100vw - 20px);max-height:calc(100vh - 78px)}
  .cv-artist-photo-lightbox-credit{padding:9px 42px}
  .cv-search-panel{padding:18px 13px}
  .cv-search-title{font-size:23px}
  .cv-search-summary{font-size:10px}
  .cv-search-tools{grid-template-columns:1fr;gap:8px}
  .cv-search-group-toggle{width:100%;justify-content:center}
  .cv-search-result-main{grid-template-columns:46px minmax(0,1fr);gap:10px;padding:11px}
  .cv-search-result-icon,.cv-search-result-art{width:46px;height:46px;border-radius:10px}
  .cv-search-result-meta{grid-column:2;min-width:0;flex-direction:row;align-items:center;justify-content:space-between;margin-top:3px;text-align:left}
  .cv-search-result-meta>span:not(.cv-search-result-action){display:none}
  .cv-search-result-action{margin:0}
  .cv-search-result-badges{flex-wrap:nowrap;overflow:hidden}
  .cv-search-badge{max-width:112px}
  .cv-search-artist-hero{grid-template-columns:54px minmax(0,1fr);gap:12px;padding:14px}
  .cv-search-artist-monogram{width:54px;height:54px;border-radius:14px;font-size:23px}
  .cv-search-artist-hero h4{font-size:18px}
  .cv-search-artist-cta{grid-column:1/-1;width:100%}
  .cv-search-section-head span{max-width:260px}
  .cv-search-variant-list{padding-left:10px}
  .cv-search-variant-meta{display:none}
  .cv-search-foot{flex-direction:column;gap:7px}
}
@media(prefers-reduced-motion:reduce){
  .cv-search-spinner,.cv-search-skeleton,.cv-search-result-art.cv-art-pending:after,.cv-search-result-art.cv-album-art-pending:after{animation:none}
  .cv-search-result,.cv-search-toggle-dot,.cv-search-toggle-dot:after{transition:none}
  .cv-search-result:hover{transform:none}
}
