:root{color-scheme:light;--bg:var(--color-cream);--surface:var(--color-paper);--soft:var(--color-cream-deep);--text:var(--color-ink);--muted:var(--color-muted);--subtle:var(--color-muted);--line:var(--color-border);--accent:var(--color-brick);--accent-soft:#f0dcd4;--green:#3f6b4e;--amber:#8a5d12;--gold:#9b6500;--red:#a33a2f;--green-bg:var(--soft);--amber-bg:var(--soft);--red-bg:var(--soft);--s1:var(--space-1);--s2:var(--space-2);--s3:var(--space-3);--s4:var(--space-4);--s5:var(--space-5);--s6:var(--space-6);--font:var(--font-family);font-family:var(--font);font-size:var(--type-body);font-synthesis:none;background:var(--bg);color:var(--text)}
:root[data-theme=dark]{color-scheme:dark;--accent-soft:#3a2218;--green:#8fc29f;--amber:#e0b25f;--gold:#f0bd4a;--red:#e8968a}
*{box-sizing:border-box}
body{display:block;min-height:100vh;margin:0;line-height:1.5}
button,input,select{font:inherit;color:inherit}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}
small{font-size:var(--type-meta)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
h1{font-size:var(--type-page);font-weight:600;letter-spacing:-1px;line-height:1.2;margin:0}
h2{font-size:var(--type-section);font-weight:600;letter-spacing:-.5px;line-height:1.25;margin:0}
h3{font-size:var(--type-meta);font-weight:600;margin:0 0 var(--s2)}
.muted{color:var(--muted)}
.est{font-size:var(--type-meta);color:var(--subtle)}
.good{color:var(--green)}.warn{color:var(--amber)}.bad{color:var(--red)}
.n{text-align:right;white-space:nowrap}
/* controls: 2px corners */
button,.button,summary{display:inline-flex;min-height:48px;align-items:center;gap:var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);padding:0 var(--s4);font-size:var(--type-ui);cursor:pointer;color:var(--text);white-space:nowrap;list-style:none}
summary::-webkit-details-marker{display:none}
button:hover,.button:hover,summary:hover{background:var(--soft);text-decoration:none}
button:disabled{opacity:.45;cursor:default;background:var(--surface)}
.primary,.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:600}
.primary:hover{background:var(--color-brick-dark);border-color:var(--color-brick-dark)}
:root[data-theme=dark] .primary:hover{color:var(--color-night)}
.primary:disabled{background:var(--accent)}
button.link{min-height:0;background:none;border:0;padding:0;color:var(--accent);font-size:inherit}
button.link:hover{text-decoration:underline}
input[type=number],input[type=search],select{min-height:48px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:5px 8px;font-size:var(--type-ui);color:var(--text)}
.num-input{width:72px}
input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;margin:0}
input::placeholder{color:var(--subtle)}
.check{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--type-meta)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.seg button{border:0;border-radius:0;background:transparent;padding:4px 12px;font-size:var(--type-meta);color:var(--muted)}
.seg button:first-child{border-top-left-radius:calc(var(--radius-sm) - 1px);border-bottom-left-radius:calc(var(--radius-sm) - 1px)}
.seg button:last-child{border-top-right-radius:calc(var(--radius-sm) - 1px);border-bottom-right-radius:calc(var(--radius-sm) - 1px)}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}
[data-help]:not(button,input,select,a,label,th,.dot){text-decoration:underline dotted var(--subtle);text-underline-offset:3px;cursor:help}
.tip{position:fixed;z-index:100;max-width:min(280px,calc(100vw - 16px));padding:var(--s2) 10px;background:var(--text);color:var(--bg);border-radius:var(--radius-sm);font-size:var(--type-meta);line-height:1.5;pointer-events:none}
.tag{display:inline-block;white-space:nowrap;font-size:var(--type-meta);font-weight:600;letter-spacing:.4px;padding:0 var(--s1);border:1px solid var(--line);border-radius:var(--radius-sm);line-height:16px}
.audiophile-tag{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line));letter-spacing:0}
.audiophile-link{text-decoration:none}
.tag+.tag{margin-left:var(--s1)}
.tag,.status-pill,.filter-count,.stats-rare-tag,.muted-tag{min-height:22px;padding-block:var(--s1);padding-inline:8px;border-radius:var(--radius-pill);line-height:1.25}
.dot{display:inline-block;flex:none;width:6px;height:6px;border-radius:50%;background:var(--line)}
.is-working{animation:working-pulse 1.8s ease-in-out infinite}
@keyframes working-pulse{0%,100%{opacity:1}50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.is-working{animation:none}}
.check-banner.is-working,.fast-all-progress.is-working,.auto-fast-status.is-working,.step.is-working{color:var(--text);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:linear-gradient(110deg,var(--accent-soft),color-mix(in srgb,var(--accent-soft) 65%,var(--accent) 35%));background-size:200% 100%;animation:check-banner-pulse 2.2s ease-in-out infinite}
.check-banner-eta{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
@keyframes check-banner-pulse{0%,100%{background-position:0% 50%;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}50%{background-position:100% 50%;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 34%,transparent)}}
@media(prefers-reduced-motion:reduce){.check-banner.is-working,.fast-all-progress.is-working,.auto-fast-status.is-working,.step.is-working{animation:none;background-position:50% 50%}}
[data-state=running] .dot{background:var(--amber)}
[data-state=done] .dot{background:var(--green)}
[data-state=skipped] .dot{background:var(--subtle)}
[data-state=error] .dot{background:var(--red)}
.app-header{position:relative;z-index:10;background:var(--surface);border-bottom:1px solid var(--line)}
.app-topbar{height:80px;max-width:1440px;margin:auto;padding:0 clamp(18px,5vw,72px);display:flex;align-items:center;justify-content:space-between}
.topbar-actions{display:flex;align-items:center;gap:var(--s2)}
.app-brand{display:flex;align-items:center;gap:10px;color:var(--text);font-size:var(--type-title);font-weight:600;letter-spacing:-1px;text-decoration:none}
.app-brand:hover{text-decoration:none}
.brand-mark{width:26px;height:26px;display:grid;place-content:center;gap:2px;border-radius:50%;background:#bf5838}
.brand-mark i{display:block;width:12px;height:1px;background:#f4eddf}
.account-menu{position:relative}
.account-menu>summary{min-width:94px;min-height:48px;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-pill);background:transparent;font-weight:600}
.account-menu>summary:hover,.account-menu>summary:focus-visible{background:var(--soft)}
:root[data-theme=dark] .account-menu>summary:hover,:root[data-theme=dark] .account-menu>summary:focus-visible{background:var(--color-night-soft)}
.account-menu>summary::after{content:"";width:7px;height:7px;margin:-4px 0 0 3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.account-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:20;width:230px;padding:var(--s1);display:grid;gap:2px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-menu)}
.account-popover a,.account-popover button{width:100%;min-height:48px;padding:8px 10px;display:flex;align-items:center;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}
.account-popover a:hover,.account-popover button:hover,.account-popover a:focus-visible,.account-popover button:focus-visible{background:var(--soft);text-decoration:none}
:root[data-theme=dark] .account-popover a:hover,:root[data-theme=dark] .account-popover button:hover,:root[data-theme=dark] .account-popover a:focus-visible,:root[data-theme=dark] .account-popover button:focus-visible{background:var(--color-night-soft)}
.app-nav-wrap{background:#282723;color:#f4eddf}
.app-nav{max-width:1440px;min-height:60px;margin:auto;padding:7px clamp(12px,4vw,58px);display:flex;align-items:center;gap:4px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;white-space:nowrap}
#steps.app-nav{width:100%;margin:0 auto;display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto}
.app-nav a,.app-nav>button:not(.sidebar-queue){min-height:44px;padding:7px 13px;display:inline-flex;align-items:center;flex:none;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;font-size:var(--type-ui);text-decoration:none}
#steps.app-nav a,#steps.app-nav>button:not(.sidebar-queue){min-height:44px;white-space:nowrap;padding:7px 13px;border-radius:var(--radius-sm);color:inherit;font-size:var(--type-ui);opacity:1}
.app-nav a:hover,.app-nav>button:not(.sidebar-queue):hover{background:#49473f;color:#fff;text-decoration:none}
#steps.app-nav a:hover,#steps.app-nav>button:not(.sidebar-queue):hover{background:#49473f;color:#fff}
.app-nav [aria-current=page]{background:var(--color-brick)!important;color:#fff!important;font-weight:600}
:root[data-theme=dark] .app-nav [aria-current=page]{color:#201f1b!important}
.nav-count{margin-left:var(--s1);font-variant-numeric:tabular-nums;opacity:.8}
.app-nav a:focus-visible,.app-nav>button:focus-visible{outline:2px solid #f4eddf;outline-offset:2px}
.app-nav .sidebar-queue{position:relative;display:grid;flex:none;width:auto;min-width:100px;margin:0 0 0 auto;padding:4px 8px;background:transparent;color:#f4eddf}
.app-nav .sidebar-queue[hidden]{display:none}
.app-nav .sidebar-queue-track{height:2px}
#view{width:min(100%,1440px);min-width:0;margin:0 auto;padding:34px clamp(16px,4vw,58px) 60px}
#view>main{width:100%;max-width:none;margin:0;padding:0}
.head{margin-bottom:var(--s5)}
.head h1{font-size:var(--type-page);letter-spacing:-1.5px}
.head .muted,.head .sub,.page-description{margin:5px 0 0;color:var(--muted);font-size:var(--type-ui)}
.page-description{max-width:760px}
.head.row{align-items:flex-start}
#view .head-copy h1{font-size:var(--type-page);letter-spacing:-1.5px}
#view .head-copy p{margin:5px 0 0;color:var(--muted);font-size:var(--type-ui)}
.library-head-actions{display:flex;align-items:center;gap:var(--s3)}
.library-head-actions>.button,.library-head-actions>button{min-height:48px}
.sync-next{width:100%;margin:0 0 var(--s5);padding:var(--s5);display:flex;align-items:center;justify-content:space-between;gap:var(--s5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.sync-next h2{margin:0 0 var(--s1);font-size:var(--type-title)}
.sync-next p{margin:0;color:var(--muted);font-size:var(--type-body)}
.sync-next .button{min-height:48px;white-space:nowrap}
.brand-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:600;font-size:var(--type-body);letter-spacing:-.5px}
.brand:hover{text-decoration:none}
.brand svg{width:28px;height:28px}
.sidebar-toggle{width:30px;height:30px;justify-content:center;padding:4px}
.sidebar-toggle svg,.step-icon,.side-link svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sidebar-toggle svg{width:16px;height:16px;transition:transform .18s ease}
#steps:not(.app-nav){margin-top:var(--s6);display:grid;gap:var(--s2)}
#steps:not(.app-nav) a{display:flex;align-items:center;gap:10px;padding:7px var(--s3);border-radius:var(--radius-sm);color:var(--muted);font-size:var(--type-meta)}
#steps:not(.app-nav) .step-icon{width:18px;height:18px;flex:none}
#steps:not(.app-nav) .step-label{min-width:0}
#steps:not(.app-nav) a:hover{background:var(--soft);text-decoration:none}
#steps:not(.app-nav) a[aria-current]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.sidebar-queue{display:grid;gap:5px;width:calc(100% - 24px);margin:var(--s1) var(--s3) 0;padding:4px 0;border:0;background:none;color:var(--muted);text-align:left;font-size:var(--type-meta);font-variant-numeric:tabular-nums}
.sidebar-queue:hover{background:none;color:var(--text)}
.sidebar-queue[hidden]{display:none}
.sidebar-queue-track{height:2px;overflow:hidden;background:var(--line)}
.sidebar-queue-track i{display:block;height:100%;background:var(--accent);transition:width .2s ease}
.side-bottom{margin-top:auto;display:grid;gap:var(--s3);justify-items:start}
.side-actions{display:flex;align-items:center;gap:var(--s2)}
.side-link{display:flex;align-items:center;gap:var(--s2);border:0;background:none;padding:0;color:var(--muted);font-size:var(--type-meta)}
.side-link:hover{background:none;color:var(--accent)}
.icon-button{padding:5px;line-height:0}
.theme-toggle{width:48px;height:48px;justify-content:center;padding:0;border-radius:var(--radius-pill);background:transparent}
.theme-toggle svg{display:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.icon-button svg{display:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.icon-button .ic-usage,.icon-button .ic-tour{display:block}
[data-mode=light] .ic-light,[data-mode=dark] .ic-dark,[data-mode=system] .ic-system{display:block}
body[data-sidebar-collapsed=true]{--sidebar-width:68px}
body[data-sidebar-collapsed=true] .sidebar{padding-inline:10px}
body[data-sidebar-collapsed=true] .brand-row{justify-content:center;flex-wrap:wrap}
body[data-sidebar-collapsed=true] .brand span,body[data-sidebar-collapsed=true] #steps .step-label,body[data-sidebar-collapsed=true] .side-link span{display:none}
body[data-sidebar-collapsed=true] .sidebar-toggle{order:2}
body[data-sidebar-collapsed=true] .sidebar-toggle svg{transform:rotate(180deg)}
body[data-sidebar-collapsed=true] #steps a{justify-content:center;gap:0;padding:9px 0}
body[data-sidebar-collapsed=true] #steps .dot{display:none}
body[data-sidebar-collapsed=true] #steps .sidebar-queue{position:relative;width:38px;height:30px;margin:0 auto;padding:0;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:var(--type-meta)}
body[data-sidebar-collapsed=true] #steps .sidebar-queue[data-paused=true]{background:var(--soft);color:var(--subtle)}
body[data-sidebar-collapsed=true] #steps .sidebar-queue-text,body[data-sidebar-collapsed=true] #steps .sidebar-queue-track{display:none}
body[data-sidebar-collapsed=true] #steps .sidebar-queue::after{content:attr(data-badge);font-size:var(--type-meta);font-weight:600;text-align:center;line-height:30px}
body[data-sidebar-collapsed=true] #steps .sidebar-queue[data-paused=true]::after{content:"Ⅱ " attr(data-badge)}
body[data-sidebar-collapsed=true] .side-bottom{justify-items:center;gap:var(--s3)}
body[data-sidebar-collapsed=true] .side-link{width:34px;height:30px;justify-content:center}
body[data-sidebar-collapsed=true] .side-actions{flex-direction:column;gap:var(--s1)}
.fav{width:16px;height:16px;vertical-align:-3px;margin-right:var(--s1)}
[data-theme=dark] .fav[src*=discogs]{background:#ece4d6;border-radius:50%}
.actions [data-help]{text-decoration:none}
.locked{overflow:hidden}
main{margin-left:0;padding:var(--s6);max-width:1440px;outline:0}
.head{margin-bottom:var(--s5)}
.head.row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}
.sub{font-size:var(--type-meta);color:var(--muted);margin:var(--s2) 0 0}
.line{margin:var(--s3) 0;font-size:var(--type-ui)}
.line.error{color:var(--red)}
.line:empty{display:none}
.foot>.primary,.import-foot>.primary{margin-left:auto}
.line button.link{margin-left:var(--s2)}
.actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s4) 0}
.foot,.import-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);max-width:none}
.foot{margin-top:var(--s5)}
.import-row{display:flex;align-items:center;gap:var(--s4);max-width:760px}
.import-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);width:100%;max-width:none}
.import-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);padding:var(--s4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.import-card .line{margin:0 0 var(--s2);color:var(--muted);font-size:var(--type-ui)}
.import-card .drop{width:100%;min-height:104px;padding:var(--s4)}
.csv-import-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}
.secondary.is-selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}
.import-card h2{font-size:var(--type-body)}
.spotify-connect{min-height:48px}
.spotify-connect .spotify-logo{width:20px;height:20px;flex:none}
.playlist-group{margin:var(--s2) 0 0}
.playlist-action-help{width:100%;max-width:none}
.playlist-action-help .line{margin:var(--s1) 0}
.spotify-picker-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);width:100%;max-width:none;margin-top:var(--s3)}
.spotify-picker-actions .primary{margin:0}
.playlist-buttons{display:flex;flex-wrap:wrap;gap:var(--s2)}
.spotify-picker{display:grid;gap:var(--s2);width:100%;max-width:none;margin-top:var(--s4)}
.playlist-group-title{margin:var(--s3) 0 var(--s2);font-size:var(--type-title)}
.playlist-title-count{font-variant-numeric:tabular-nums;opacity:.8}
.spotify-playlist-loading{display:flex;align-items:center;gap:var(--s2);min-height:36px;color:var(--muted);font-size:var(--type-ui)}
.spotify-loading-spinner{width:16px;height:16px;flex:none;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spotify-spin .8s linear infinite}
@keyframes spotify-spin{to{transform:rotate(360deg)}}
.spotify-playlist-skeleton{display:flex;align-items:center;gap:var(--s3);min-height:56px;padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.spotify-playlist-skeleton i{display:block;height:10px;flex:1;border-radius:var(--radius-pill);background:var(--soft);animation:pulse 1.2s ease-in-out infinite alternate}
.spotify-playlist-skeleton i:first-child{max-width:24px}
.spotify-playlist-skeleton i:last-child{max-width:96px}
.spotify-playlist{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.spotify-playlist-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spotify-playlist-count,.spotify-playlist-note{color:var(--muted);font-size:var(--type-meta)}
.spotify-playlist.disabled{opacity:.62}
.playlist-pagination{display:flex;justify-content:center;align-items:center;gap:var(--s3);padding:var(--s2) 0}
.playlist-page-numbers{display:flex;align-items:center;gap:var(--s1)}
.page-link{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:4px 8px;color:var(--text);font-size:var(--type-meta);cursor:pointer}
.page-link:hover:not(:disabled),.page-link.current{border-color:var(--accent);color:var(--accent)}
.page-link:disabled{opacity:.45;cursor:default}
.spotify-progress{border:1px solid var(--line);padding:0;width:min(480px,calc(100vw - 32px));background:var(--surface);color:var(--text);box-shadow:0 18px 60px #0003}
.spotify-progress::backdrop{background:#14110ecc}
.spotify-progress-body{padding:var(--s5)}
.spotify-progress-body h2{margin:0 0 var(--s3)}
.spotify-progress-body progress{width:100%;margin:var(--s3) 0}
.spotify-progress-actions{display:flex;justify-content:flex-end;gap:var(--s2);margin-top:var(--s4)}
.drop{flex:1;display:grid;place-items:center;min-height:120px;padding:var(--s5);border:1px dashed var(--subtle);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);cursor:pointer;text-align:center}
.drop:hover,.drop.over{border-color:var(--accent);color:var(--text)}
.drop:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.drop u{color:var(--accent);text-underline-offset:3px}
.import-foot{margin-top:var(--s4);min-height:32px}
.import-foot .line{margin:0}
.steps,.sources,.tracks,.unverified,.source-lines{list-style:none;padding:0}
.steps{margin:0 0 var(--s6);max-width:760px}
.step{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,220px);align-items:center;gap:var(--s2) var(--s4);padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--type-meta)}
.step-label{display:flex;align-items:center;gap:10px}
.step-state{color:var(--muted);font-size:var(--type-meta)}
.step-detail{display:flex;gap:var(--s2);justify-content:flex-end;font-variant-numeric:tabular-nums;color:var(--muted);font-size:var(--type-meta)}
.step progress{grid-column:1/-1;width:100%}
progress{appearance:none;height:4px;width:160px;border:0;background:var(--soft);vertical-align:middle}
progress::-webkit-progress-bar{background:var(--soft)}
progress::-webkit-progress-value{background:var(--accent)}
progress::-moz-progress-bar{background:var(--accent)}
.rules{max-width:760px}
.scope{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin:0}
.sources{margin:var(--s4) 0;max-width:420px}
.sources li{display:flex;justify-content:space-between;gap:var(--s4);padding:var(--s2) 0;border-bottom:1px solid var(--line);font-size:var(--type-meta)}
.sources .note{color:var(--muted);font-size:var(--type-meta)}
.progress-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);font-size:var(--type-meta);font-variant-numeric:tabular-nums}
/* tables: 0 corners, no card chrome */
table{width:100%;border-collapse:collapse;font-size:var(--type-meta);font-variant-numeric:tabular-nums}
th{font-size:var(--type-meta);font-weight:600;color:var(--muted);background:var(--bg);text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);white-space:nowrap}
th button{background:none;border:0;padding:0;font-size:inherit;font-weight:inherit;color:inherit}
th button:hover{background:none;color:var(--text)}
th[aria-sort] button{color:var(--text)}
th[aria-sort=ascending] button::after{content:'\2191'}
th[aria-sort=descending] button::after{content:'\2193'}
td{padding:var(--s1) var(--s3);border-bottom:1px solid var(--line);height:44px;vertical-align:middle}
.lib th{position:sticky;top:0;z-index:1}
.lib tbody tr{cursor:pointer}
.lib tbody tr:hover,.lib tbody tr:focus{background:var(--soft)}
.lib tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.cell-album{display:flex;align-items:center;gap:var(--s3);min-width:0;max-width:440px}
.cell-album>div{min-width:0}
.cell-album b,.cell-album small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cell-album b{font-size:var(--type-meta);font-weight:600}
.cell-album small{font-size:var(--type-meta);color:var(--muted)}
.cover,.cover-lg{display:block;flex:none;object-fit:cover;background:var(--soft)}
.cover{width:36px;height:36px}
td.empty{padding:var(--s5) var(--s3);color:var(--muted);font-size:var(--type-meta)}
.table-foot{margin:var(--s3) 0;font-size:var(--type-meta);color:var(--muted)}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}
.filter-toggle{gap:8px}
.filter-count{display:inline-grid;min-width:20px;height:20px;place-items:center;background:var(--accent);color:var(--surface);font-size:var(--type-meta);font-weight:600}
.filter-count[hidden]{display:none}
.worth-notice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);min-height:44px;margin:0 0 var(--s3);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--type-meta)}
.worth-notice[hidden]{display:none}
.bulk-check-status{display:none;gap:8px;margin:0 0 var(--s3);min-width:0}
.check-banner{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:start;gap:var(--s2) var(--s3);min-height:44px;margin:0 0 var(--s3);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--type-meta);overflow-wrap:anywhere}
.check-banner[hidden]{display:none}
.check-banner>span:first-child{grid-column:1;grid-row:1;min-width:0}
.check-banner .summary-close{grid-column:2;grid-row:1;align-self:start;margin:0;width:44px;height:44px;min-width:44px}
.artist-vinyl-results{width:100%;table-layout:fixed}
.artist-vinyl-results th:first-child,.artist-vinyl-results td:first-child{width:34px}
.artist-vinyl-results th:nth-child(2),.artist-vinyl-results td:nth-child(2){width:40%;overflow-wrap:anywhere}
.artist-vinyl-results td:nth-child(2) .link{white-space:normal;text-align:left}
.artist-vinyl-results th:last-child,.artist-vinyl-results td:last-child{overflow-wrap:anywhere}
.other-vinyl-results{width:100%;table-layout:fixed}
.other-vinyl-results th:first-child,.other-vinyl-results td:first-child{width:58%;overflow-wrap:anywhere}
.other-vinyl-results th:nth-child(2),.other-vinyl-results td:nth-child(2){width:29%;overflow-wrap:anywhere}
.other-vinyl-results th:last-child,.other-vinyl-results td:last-child{width:13%;text-align:right}
.other-vinyl-results .other-vinyl-liked{margin:5px 0 0;font-size:var(--type-meta);line-height:1.45}
.other-vinyl-results .other-vinyl-detail{padding:12px;background:var(--soft);text-align:left}
.other-vinyl-results .other-vinyl-detail .line{margin:0 0 8px}
.bulk-check-status:has(> .auto-fast-status:not([hidden]),> .fast-all-progress:not([hidden]),> .fast-all-summary:not([hidden])){display:grid}
.bulk-check-status .auto-fast-status{margin:0}
.fast-all-progress{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin:0;padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--type-meta);color:var(--muted);min-width:0}
.fast-all-progress .fast-all-label{flex:1 1 260px;min-width:0;overflow-wrap:anywhere}
.fast-all-progress progress{flex:1 1 160px;width:min(320px,100%);max-width:320px}
.fast-all-summary{display:flex;align-items:center;gap:var(--s3);margin:0;padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow-wrap:anywhere}
.summary-close{margin-left:auto;flex:none}
.auto-fast-status:not([hidden]){display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin:0 0 var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--type-meta)}
.auto-fast-status .line{margin:0}
.auto-fast-status progress{width:min(320px,40vw)}
.search input{width:220px}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s4)}
.filter-checks{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--s3) var(--s4)}
.filter-checks>.check{white-space:nowrap}
.genre-menu{position:relative;font-size:var(--type-meta)}
.genre-summary{list-style:none;cursor:pointer;justify-content:space-between;gap:8px;min-width:88px;padding:5px 8px;color:var(--text);background:var(--surface)}
.genre-summary::after{content:"";width:6px;height:6px;flex:none;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px;transition:transform .15s ease,margin .15s ease}
.genre-menu[open]>.genre-summary::after{transform:rotate(225deg);margin-top:3px}
.genre-summary::-webkit-details-marker{display:none}
.genre-popover{position:absolute;top:calc(100% + var(--s1));left:0;z-index:6;display:grid;grid-template-columns:1fr auto;gap:var(--s2);width:260px;padding:var(--s3);background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 24px #0002}
.genre-search{grid-column:1/-1;width:100%;min-width:0}
.genre-options{grid-column:1/-1;display:grid;gap:var(--s1);max-height:260px;overflow:auto}
.genre-option{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s2);padding:3px 0}
.genre-option small{color:var(--muted)}
.genre-clear{justify-self:end}
.filters-disabled .genre-menu{pointer-events:none}
.field{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--type-meta)}
.field>span:first-child{color:var(--muted)}
.range{display:inline-flex;gap:var(--s2)}
.tools{display:flex;gap:var(--s2);margin-left:auto}
.menu{position:relative}
.menu-list{position:absolute;right:0;top:calc(100% + var(--s1));z-index:5;display:grid;gap:var(--s2);min-width:200px;padding:var(--s3);background:var(--surface);border:1px solid var(--line)}
.bar{display:inline-block;height:10px;width:60%;background:var(--soft);vertical-align:middle}
.bar.short{width:32px}
.skeleton .cell-album .bar{width:160px}
.skeleton .cell-album{max-width:none}
.skeleton i,.skeleton-list i,.cover-lg.skeleton{animation:pulse 1.2s ease-in-out infinite alternate}
@keyframes pulse{to{opacity:.45}}
/* details pane: the only shadow */
#pane{border:0;border-left:1px solid var(--line);padding:0;margin:0 0 0 auto;width:min(720px,95vw);max-width:100vw;height:100vh;max-height:100vh;background:var(--surface);color:var(--text);box-shadow:-12px 0 32px #0003}
#pane::backdrop{background:#14110e66}
#crateModal{border:1px solid var(--line);padding:0;width:min(420px,calc(100vw - 32px));background:var(--surface);color:var(--text);box-shadow:0 18px 60px #0003}
#crateModal::backdrop{background:#14110e66}
.crate-modal-body{padding:var(--s5)}
.crate-modal-body h2{margin:0 0 var(--s3)}
.crate-modal-body .line{margin:0}
.crate-modal-detail{margin:var(--s3) 0 0;color:var(--muted);font-size:var(--type-meta)}
.crate-modal-actions{display:flex;justify-content:flex-end;gap:var(--s2);margin-top:var(--s5)}
.crate-modal-actions #crateModalCancel[hidden]{display:none}
.usage-log-dialog{border:1px solid var(--line);padding:0;width:min(760px,95vw);max-height:90vh;overflow:auto;background:var(--surface);color:var(--text)}
.set-sources-body{overflow-x:hidden}
.set-sources-body .mini{table-layout:fixed;min-width:0}
.set-sources-body .mini th:nth-child(1),.set-sources-body .mini td:nth-child(1){width:16%}
.set-sources-body .mini th:nth-child(2),.set-sources-body .mini td:nth-child(2){width:13%}
.set-sources-body .mini th:nth-child(3),.set-sources-body .mini td:nth-child(3){width:24%}
.set-sources-body .mini th:nth-child(4),.set-sources-body .mini td:nth-child(4){width:47%}
.set-sources-body .mini th,.set-sources-body .mini td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}
.usage-table{table-layout:fixed}
.usage-table th,.usage-table td{padding:6px var(--s2);vertical-align:middle;font-size:var(--type-meta);white-space:nowrap}
.usage-table th{background:var(--surface);font-weight:600;font-size:var(--type-meta);color:var(--subtle);border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.usage-table td{border-bottom:1px solid var(--line)}
.usage-table td .link-btn{white-space:normal;text-align:left;line-height:1.3}
.meter-wrap{display:flex;align-items:center;gap:6px}
.meter-bar{width:44px;height:6px;background:var(--soft);border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}
.meter-fill{height:100%;transition:width .2s ease}
.calc-card{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--s4);margin-top:var(--s4)}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s3);align-items:end;margin-bottom:var(--s3)}
.row-over-limit td{background:rgba(163,58,47,0.12)!important}
.badge-over{color:var(--red);font-weight:600;font-size:var(--type-meta)}
.set-body{display:grid;gap:var(--s3);padding:var(--s5)}
.set-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:var(--s3);font-size:var(--type-meta)}
.set-row input,.set-row select{width:110px}
.set-row .range input{width:64px}
.set-checkbox{grid-template-columns:24px minmax(0,1fr);align-items:start}
.set-checkbox>input[type=checkbox]{width:16px;height:16px;margin:2px 0 0}
.set-checkbox>span{min-width:0}
.set-foot{display:flex;justify-content:flex-end;padding:0 var(--s5) var(--s5)}
.tag.kind{margin-left:var(--s2)}
.source-lines{margin:0 0 var(--s3);display:grid;gap:var(--s2);font-size:var(--type-meta)}
#pane[open]{animation:slide .18s ease-out}
@keyframes slide{from{transform:translateX(40px);opacity:0}}
.pane-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:var(--s3) var(--s5);background:var(--surface);border-bottom:1px solid var(--line);font-size:var(--type-meta);color:var(--subtle)}
.criterion-dialog .pane-head{align-items:center}
.criterion-dialog .pane-head strong{min-width:0;color:var(--text);font-size:var(--type-ui);font-weight:600}
.criterion-close{display:inline-flex;width:32px;height:32px;min-width:32px;min-height:32px;align-items:center;justify-content:center;flex:none;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--type-ui);line-height:1}
.criterion-close:hover{background:var(--soft)}
.source-reference{display:inline-flex;align-items:center;gap:6px;max-width:100%;white-space:nowrap;vertical-align:middle}
.source-reference img{width:16px;height:16px;flex:0 0 16px;object-fit:contain}
dialog p{width:100%;max-width:none}
#paneBody{padding:var(--s5)}
.pane-hero{display:flex;gap:var(--s4);align-items:flex-start}
.pane-hero .grow{flex:1;min-width:0;display:grid;gap:var(--s2)}
.pane-meta{overflow-wrap:anywhere}
.pane-hero p{margin:var(--s1) 0 0}
.pane-ratings{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;font-size:var(--type-meta);font-weight:500}
.pane-ratings p,.pane-ratings small{margin:0}
.cover-lg{width:96px;height:96px}
.pane-section{margin-top:var(--s4)}
.pane-empty{margin:var(--s5) 0 0;padding:var(--s3) 0;border-top:1px solid var(--line);color:var(--muted);font-size:var(--type-ui)}
#paneBody h3,#paneBody h4{scroll-margin-top:64px}
.pane-section>summary{display:block;background:none;border:0;padding:0;cursor:pointer}
.pane-section>summary:hover{background:none}
.pane-section>summary h3::before{content:"\25B8";display:inline-block;width:14px;color:var(--subtle)}
.pane-section>summary h3{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.pane-section[open]>summary h3::before{content:"\25BE"}
.source-row{display:flex;flex-wrap:wrap;gap:var(--s4);margin:0 0 var(--s4);font-size:var(--type-meta)}
.source-group-line{overflow-wrap:anywhere}
.source-group-name{display:inline;min-height:0;padding:0;border:0;border-radius:0;background:transparent;font-size:inherit;white-space:normal;cursor:pointer;color:var(--text)}
.source-group-name:hover{background:transparent;text-decoration:underline}
.nearby-shops{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line)}
.nearby-shops{display:block;padding-left:0;border:0;background:none;color:var(--text);font-size:var(--type-ui);font-weight:600;text-align:left}
.nearby-shops:hover{text-decoration:underline}
.nearby-shop-list{margin:0}
.nearby-shop-list ul{display:grid;gap:var(--s3);margin:0;padding:0;list-style:none}
.nearby-shop-list li{display:grid;gap:3px;min-width:0}
.nearby-shop-list a{overflow-wrap:anywhere}
.nearby-shop-list .nearby-hours{display:block;margin-top:2px}
.nearby-shop-list .nearby-stock{color:var(--green);font-size:var(--type-meta)}
.nearby-shop-list .nearby-stock:not(.online-read){color:var(--muted)}
.shop-details-dialog{border:1px solid var(--line);padding:0;width:min(680px,95vw);max-height:88vh;overflow:auto;background:var(--surface);color:var(--text)}
.shop-details-dialog::backdrop{background:#14110e66}
.shop-details-dialog>.pane-head{position:sticky;top:0;z-index:1;background:var(--surface)}
.shop-details-list{display:grid;gap:var(--s4);padding:var(--s4) var(--s5) var(--s5)}
.shop-location-group h3{margin:0 0 var(--s2);font-size:var(--type-ui)}
.shop-location-group ul{display:grid;gap:var(--s2);margin:0;padding:0;list-style:none}
.shop-location-group li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);min-width:0}
.shop-location-group li a{overflow-wrap:anywhere}
.shop-album-status{flex:0 0 auto;font-size:var(--type-meta)}
.shop-details-dialog .nearby-shop-list{padding:var(--s4) var(--s5) var(--s5)}
.nearby-shops-dialog .nearby-shop-list{padding-top:var(--s2)}
@media(max-width:480px){.shop-details-dialog{width:calc(100vw - 20px);max-height:92vh}.shop-details-list{padding:var(--s3)}.shop-location-group li{align-items:flex-start;flex-direction:column;gap:2px}.shop-album-status{padding-left:var(--s2)}}
.actions button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.actions .actions{margin:0}
.pane-resize{position:fixed;top:0;bottom:0;width:6px;cursor:col-resize;z-index:3}
.pane-resize:hover{background:var(--line)}
.filters-disabled{opacity:.45}
.crate-tour{position:fixed;inset:0;z-index:9998;background:#14110e99;pointer-events:auto}
.crate-tour-card{position:fixed;z-index:10001;left:50%;bottom:24px;transform:translateX(-50%);width:min(560px,calc(100% - 48px));max-height:calc(100vh - 48px);overflow:auto;padding:24px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 18px 54px #0005;pointer-events:auto}
.crate-tour-card h2,.tour-form h2{margin:0 0 8px;font-size:var(--type-section);letter-spacing:-.03em}
.tour-count{margin:0 0 8px;color:var(--subtle);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.1em}
.tour-copy{margin:0;color:var(--muted);font-size:var(--type-ui);line-height:1.55}
.tour-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.tour-target{position:relative!important;z-index:9999!important;outline:2px solid var(--gold)!important;outline-offset:3px;box-shadow:0 0 0 9999px #14110e99!important}
.crate-tour-sample{position:fixed;z-index:10000;right:0;top:0;bottom:0;width:min(720px,100vw);padding:20px;overflow:auto;background:var(--surface);color:var(--text);border-left:1px solid var(--line);box-shadow:-12px 0 32px #0003;pointer-events:auto}
.crate-tour-with-sample+.crate-tour-card{left:24px;transform:none;width:min(560px,calc(100% - 760px))}
.crate-tour-checks+.crate-tour-card+.crate-tour-sample{top:auto;bottom:0;height:400px;width:min(520px,100vw);border-top:1px solid var(--line)}
.crate-tour-sample>.pane-hero{margin-top:0}
.crate-tour-sample table{table-layout:fixed}
.crate-tour-sample th,.crate-tour-sample td{white-space:normal;overflow-wrap:anywhere}
.crate-tour-sample #tour-sources-section table{width:100%;min-width:0}
.crate-tour-sample #tour-sources-section table.source-offers{width:calc(100% - 24px);max-width:calc(100% - 24px);margin-left:24px!important}
.crate-tour-sample #tour-sources-section th:nth-child(1),.crate-tour-sample #tour-sources-section td:nth-child(1){width:34%}
.crate-tour-sample #tour-sources-section th:nth-child(2),.crate-tour-sample #tour-sources-section td:nth-child(2){width:8%}
.crate-tour-sample #tour-sources-section th:nth-child(3),.crate-tour-sample #tour-sources-section td:nth-child(3){width:13%}
.crate-tour-sample #tour-sources-section th:nth-child(4),.crate-tour-sample #tour-sources-section td:nth-child(4){width:13%}
.crate-tour-sample #tour-sources-section th:nth-child(5),.crate-tour-sample #tour-sources-section td:nth-child(5){width:12%}
.crate-tour-sample #tour-sources-section th:nth-child(6),.crate-tour-sample #tour-sources-section td:nth-child(6){width:20%}
.crate-tour-sample #tour-buying-details,.crate-tour-sample #tour-vinyl-section,.crate-tour-sample #tour-sources-section{scroll-margin-top:16px}
.tour-form{display:grid;gap:13px;margin-top:14px}
.tour-form>p{margin:0}
.tour-field{display:grid;gap:4px;font-size:var(--type-meta);font-weight:600}
.tour-field input,.tour-field select{width:100%;min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit}
.tour-field small,.tour-check small{font-weight:400;font-size:var(--type-meta);line-height:1.4}
.tour-check{display:grid;grid-template-columns:18px 1fr;gap:2px 8px;font-size:var(--type-meta)}
.tour-check small{grid-column:2}
.tour-check input{grid-row:span 2;align-self:start;margin:2px 0}
.tour-status{margin:0;color:var(--danger);font-size:var(--type-meta)}
@media(max-width:650px){.crate-tour-card{padding:18px;bottom:12px}.crate-tour-sample{top:0;bottom:auto;height:42vh;padding:16px;border-left:0;border-bottom:1px solid var(--line)}.crate-tour-with-sample+.crate-tour-card{top:auto;bottom:12px;left:12px;right:12px;transform:none;width:auto;max-height:52vh}}
@media(max-height:700px){.crate-tour-sample{padding:10px}.tour-form{gap:4px;margin-top:6px}.tour-field{gap:1px}.tour-field input,.tour-field select{min-height:28px;padding:2px 8px}.tour-field small,.tour-check small{font-size:var(--type-meta);line-height:1.1}.tour-actions{margin-top:6px}.tour-check{gap:0 6px}}
.crate-tour-sample.crate-tour-settings{left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:24px;border:1px solid var(--line);border-radius:var(--radius-md)}
@media(max-height:700px){.crate-tour-sample.crate-tour-settings{padding:10px}}
.pane-section p{margin:0 0 var(--s2);font-size:var(--type-meta)}
.tracks{margin:0 0 var(--s2);columns:2;column-gap:var(--s5);font-size:var(--type-meta)}
.tracks li{display:flex;gap:var(--s2);padding:2px 0;break-inside:avoid}
.tracks .n{min-width:20px}
.mini td{height:auto;padding:6px var(--s3)}
.mini tbody th{background:none;width:72px}
.pane-section table.mini:not(.editions-table) th{width:116px;min-width:116px;white-space:normal;overflow-wrap:normal;word-break:normal}
.mini tr[aria-current]{background:var(--soft)}
.mini small{font-size:var(--type-meta)}
.source-match-col{width:42px;text-align:center;white-space:nowrap}
.source-match{display:inline-block;min-width:18px;font-weight:600;text-align:center;line-height:1.2}
.source-match-exact{color:var(--green)}
.source-match-possible{color:var(--amber)}
.source-match-no{color:var(--red)}
.source-date{white-space:nowrap;font-variant-numeric:tabular-nums}
.source-seller{display:block;margin-top:2px;font-weight:400}
.judgment{display:grid;gap:var(--s1);margin-top:var(--s1)}
h4{font-size:var(--type-meta);font-weight:600;margin:var(--s4) 0 var(--s2)}
.inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin:var(--s3) 0;font-size:var(--type-meta)}
.unverified{margin:var(--s3) 0 0;display:grid;gap:var(--s2);font-size:var(--type-meta);color:var(--muted)}
.stats-head p{margin:var(--s2) 0 0;max-width:600px}
.stats-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin:0 0 var(--s2)}
.stats-filter{margin:0;width:max-content;font-size:var(--type-meta)}
.stats-year-filter,.stats-year-choices{display:flex;align-items:center;gap:8px;font-size:var(--type-meta)}
.stats-year-choices label{display:flex;align-items:center;gap:5px}
.stats-year-filter select,.stats-year-choices select{min-width:92px}
.stats-filter-summary{margin:0 0 var(--s3);color:var(--muted);font-size:var(--type-meta)}
.stats-filter-summary p{margin:3px 0}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:var(--s4)}.stats-grid-column{display:grid;align-content:start;gap:var(--s4);min-width:0}
.stats-card{display:block;vertical-align:top;width:100%;min-width:0;margin:0;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);container-type:inline-size;animation:stats-enter .35s ease both;animation-delay:calc(var(--card-order,0)*35ms)}
.stats-grid-column:first-child .stats-card:nth-child(2){--card-order:1}.stats-grid-column:first-child .stats-card:nth-child(3){--card-order:2}.stats-grid-column:first-child .stats-card:nth-child(4){--card-order:3}.stats-grid-column:first-child .stats-card:nth-child(5){--card-order:4}.stats-grid-column:last-child .stats-card:nth-child(2){--card-order:5}.stats-grid-column:last-child .stats-card:nth-child(3){--card-order:6}.stats-grid-column:last-child .stats-card:nth-child(4){--card-order:7}
.stats-card header{margin-bottom:20px}.stats-card header h2{font-size:var(--type-section);letter-spacing:-.35px}.stats-card header p{margin:5px 0 0;color:var(--muted);font-size:var(--type-meta)}
.stats-gate{display:grid;gap:8px;align-content:center;text-align:left;padding:2px 0;color:var(--muted);font-size:var(--type-ui)}.stats-gate p{margin:0}.stats-gate>span{font-size:var(--type-meta);color:var(--subtle)}.stats-gate-track{height:6px;overflow:hidden;border-radius:var(--radius-sm);background:var(--soft)}.stats-gate-track i{display:block;width:calc(var(--share)*100%);height:100%;background:var(--gold);border-radius:var(--radius-sm)}
.stats-big{max-width:100%;font-size:var(--type-display);font-weight:600;letter-spacing:-2px;line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stats-big span{font-size:var(--type-section);letter-spacing:-.4px;color:var(--muted);font-weight:400}
.stats-note{margin:12px 0 0;color:var(--muted);font-size:var(--type-meta);line-height:1.55}.stats-note strong{color:var(--text);text-decoration:underline dotted var(--subtle);text-underline-offset:3px}
.stats-headline{margin:0 0 12px;font-size:var(--type-title);font-weight:600;line-height:1.2;letter-spacing:-.8px;overflow-wrap:anywhere}.stats-headline span{font-size:var(--type-ui);font-weight:400;letter-spacing:0;color:var(--muted)}
.stats-base{margin:14px 0 0;color:var(--subtle);font-size:var(--type-meta)}
.stats-technical{margin-top:12px}.stats-technical[open]>summary{margin-bottom:8px}
.stats-split,.stats-progress{display:flex;gap:3px;height:11px;margin-top:19px;overflow:hidden;border-radius:var(--radius-sm);background:var(--soft)}
.stats-split i,.stats-progress i{display:block;flex:var(--share) 1 0;min-width:0;background:var(--gold);border-radius:var(--radius-sm)}.stats-split i:nth-child(2){background:var(--accent)}.stats-split i:nth-child(3){background:var(--line)}
.stats-cost{font-size:var(--type-ui);font-weight:600;letter-spacing:-.2px;margin:16px 0 0}.stats-compact{font-size:var(--type-page);margin-top:17px}.stats-compact span{font-size:var(--type-ui)}
.stats-bars{display:grid;gap:7px}.stats-bar-row{display:grid;grid-template-columns:minmax(74px,132px) minmax(24px,1fr) max-content;align-items:center;gap:10px;min-height:23px;animation:stats-enter .32s ease both;animation-delay:calc(var(--bar-order,0)*24ms)}.stats-bar-row.is-top .stat-label{font-weight:600;color:var(--text)}.stat-label{min-width:0;overflow:hidden;color:var(--muted);font-size:var(--type-ui);text-overflow:ellipsis;white-space:nowrap}.stats-bar-label-stack{display:grid;align-content:center;justify-items:start;gap:1px;min-width:0}.stats-bar-label-stack .stat-label{width:100%;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.stats-bar-label-stack .stat-label-sub{width:100%;color:var(--muted);font-size:var(--type-meta);line-height:1.2;overflow-wrap:anywhere}.stats-rare-tag{background:var(--soft);color:var(--muted);font-size:var(--type-meta)}.stat-track{display:block;height:10px;overflow:hidden;border-radius:var(--radius-sm);background:var(--soft)}.stat-track i{display:block;width:var(--bar-width);height:100%;border-radius:var(--radius-sm);background:var(--gold)}.stat-value{font-size:var(--type-meta);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}
.stats-columns-wrap{overflow:hidden}.stats-columns{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:end;min-height:182px;padding:30px 0 22px;border-bottom:1px solid var(--line)}.stats-column{display:grid;grid-template-rows:18px 1fr 18px;align-items:end;justify-items:center;gap:3px;min-width:0;height:130px}.stats-column-value,.stats-column-label{font-size:var(--type-meta);line-height:1.2;color:var(--muted);white-space:nowrap}.stats-column-label{align-self:end}.stats-column i{grid-row:2;align-self:end;display:block;width:min(25px,56%);height:var(--column-height);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--gold)}.stats-column.is-top i{background:var(--accent)}.stats-median-marker{position:absolute;z-index:1;top:50px;bottom:47px;left:var(--median-position);border-left:1px dashed var(--accent);pointer-events:none}.stats-median-marker span{position:absolute;top:-46px;left:0;padding:0 4px;background:var(--surface);color:var(--accent);font-size:var(--type-meta);font-weight:600;white-space:nowrap;transform:translateX(-50%)}
.stats-empty,.stats-loading{color:var(--muted);padding:24px}.stats-loading{grid-column:1/-1;text-align:center}
.stats-similar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.stats-similar-header>div{min-width:0}.stats-similar-reset,.stats-similar-hide{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;padding:5px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer}.stats-similar-reset:hover,.stats-similar-hide:hover{color:var(--ink);background:var(--surface-hover,#f5f5f5)}.stats-similar-reset svg,.stats-similar-hide svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.stats-similar-reset{margin-top:-4px}.stats-similar-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.stats-similar-list li{display:grid;grid-template-columns:32px minmax(0,1fr) auto 30px;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.stats-similar-list li:first-child{border-top:0;padding-top:0}.stats-similar-list li>div{display:grid;justify-items:start;gap:3px;min-width:0;text-align:left}.stats-similar-list strong{font-size:var(--type-ui)}.stats-similar-list span,.stats-similar-list small{color:var(--muted);font-size:var(--type-meta)}.stats-similar-list small{overflow-wrap:anywhere}.stats-similar-list .stats-similar-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--text)}.stats-similar-list .stats-similar-group{padding:2px 6px;border-radius:var(--radius-md);background:var(--soft);color:var(--muted);font-size:var(--type-meta);font-weight:500;line-height:1.2;white-space:nowrap}.stats-similar-list button{justify-self:end;white-space:nowrap}.stats-similar-list .cover{width:32px;height:32px}.stats-similar-list .stats-similar-photo{object-fit:cover}
.stats-similar-mode{display:grid;gap:3px;flex:0 0 auto;color:var(--muted);font-size:var(--type-meta)}.stats-similar-mode select{max-width:190px;height:30px;padding:0 8px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);font:inherit;font-size:var(--type-meta)}
.stats-updating .stats-card{opacity:.55}.stats-update-status,.stats-update-error{margin:0 0 10px;color:var(--muted);font-size:var(--type-meta)}.stats-update-error{color:var(--danger,#a33)}
.collection-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5)}
.collection-head p{margin:var(--s2) 0 0}
.collection-head>.primary{flex:none}
.collection-widgets{margin-bottom:var(--s5)}
.collection-widget{min-width:0;min-height:208px}
.collection-rarity-total{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s2);margin:0}
.collection-rarity-total span{display:grid;min-width:0;align-content:center;justify-items:center;gap:4px;padding:10px 6px;background:var(--soft);text-align:center}
.collection-rarity-total strong{font-size:var(--type-title);line-height:1;font-variant-numeric:tabular-nums}
.collection-rarity-total small{font-size:var(--type-meta);line-height:1.25;color:var(--muted)}
.collection-artist-list{display:grid;gap:var(--s2);margin:0;padding:0;list-style:none}
.collection-artist-list li{display:grid;grid-template-columns:28px minmax(0,1fr) auto 28px;align-items:center;gap:var(--s2);min-height:32px}
.collection-rank{font-size:var(--type-meta);color:var(--subtle);font-variant-numeric:tabular-nums}
.collection-artist-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-artist-list strong{font-size:var(--type-meta);color:var(--muted);white-space:nowrap}
.collection-hide{width:28px;height:28px;justify-content:center;padding:0;border:0;background:transparent;color:var(--muted);font-size:var(--type-section)}
.collection-hide:hover{color:var(--accent)}
.collection-show-hidden{margin-top:var(--s3)}
.collection-artist-list .collection-no-artists{display:block;grid-column:1/-1;color:var(--muted);font-size:var(--type-meta)}
.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:var(--s4)}
.collection-list{min-width:0}
.collection-item{min-width:0;overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.collection-art{position:relative;aspect-ratio:1;background:var(--soft)}
.collection-art.cover-wrap{background:var(--soft)}
.collection-art img,.collection-art-placeholder{display:block;width:100%;height:100%;object-fit:cover}
.collection-price{position:absolute;right:0;top:10px;max-width:calc(100% - 12px);padding:5px 9px;background:var(--text);color:var(--bg);font-size:var(--type-meta);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.collection-price.is-empty{background:var(--accent);color:var(--surface)}
.collection-item-copy{padding:var(--s3)}
.collection-item-copy h3{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-artist,.collection-edition{margin:4px 0 0;color:var(--muted);font-size:var(--type-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-edition{font-size:var(--type-meta);color:var(--subtle)}
.collection-item-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s3)}
.collection-item-actions .collection-action{display:inline-flex;min-height:24px;align-items:center;padding:0;color:var(--accent);font-size:var(--type-meta);font-weight:500;line-height:1.25}
.collection-item-actions .collection-action:hover{text-decoration:underline}
.collection-empty,.collection-loading{grid-column:1/-1;padding:var(--s6);color:var(--muted);text-align:center}
.collection-dialog{width:min(560px,calc(100vw - 32px));max-height:min(88vh,760px);overflow:auto;padding:0;border:1px solid var(--line);background:var(--surface);color:var(--text);box-shadow:0 18px 60px #0003}
.collection-dialog::backdrop{background:#14110e66}
.collection-form{padding:var(--s5)}
.collection-form h2{margin:0 0 var(--s4)}
.collection-form-fields{display:grid;gap:var(--s3);margin-top:var(--s3)}
.collection-form-fields label{display:grid;gap:var(--s1);font-size:var(--type-meta);color:var(--muted)}
.collection-form-fields select{width:100%;min-height:38px}
.collection-dialog-note{margin:var(--s3) 0 0;color:var(--muted);font-size:var(--type-meta)}
.collection-dialog .crate-modal-actions{margin-top:var(--s5)}
.collection-dialog .crate-modal-actions button:first-child{margin-right:auto}
@media(max-width:1100px){.collection-rarity-total{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.collection-head{flex-direction:column;align-items:flex-start;gap:var(--s3)}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}.collection-item-copy{padding:10px}.collection-widget{min-height:0}}
@keyframes stats-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.stats-bar-row.is-standout .stat-track i,.stats-column.is-standout i{background:var(--accent)}
.country-layout{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);align-items:center;gap:clamp(16px,3vw,30px)}.country-donut{display:block;width:100%;max-width:180px;overflow:visible}.country-track,.country-slice{fill:none;stroke-width:18}.country-track{stroke:var(--soft)}.country-slice{stroke:var(--gold)}.country-slice:nth-of-type(3){stroke:color-mix(in srgb,var(--gold) 82%,var(--surface))}.country-slice:nth-of-type(4){stroke:color-mix(in srgb,var(--gold) 68%,var(--surface))}.country-slice:nth-of-type(5){stroke:color-mix(in srgb,var(--gold) 54%,var(--surface))}.country-slice:nth-of-type(6){stroke:color-mix(in srgb,var(--gold) 40%,var(--surface))}.country-slice:nth-of-type(7){stroke:color-mix(in srgb,var(--gold) 30%,var(--surface))}.country-slice.is-standout{stroke:var(--accent)}.country-donut text{fill:var(--text);font-family:var(--font);font-size:var(--type-meta);font-weight:700}.country-donut .country-center-label{fill:var(--muted);font-size:var(--type-meta);font-weight:500}.country-legend{display:grid;gap:10px;min-width:0;margin:0;padding:0;list-style:none}.country-legend li{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:var(--type-meta)}.country-legend li.is-standout{color:var(--text)}.country-legend strong{flex:none;font-size:var(--type-meta);font-variant-numeric:tabular-nums;color:var(--text)}.country-legend li.is-standout strong{color:var(--accent)}.country-name{display:flex;align-items:center;gap:7px;min-width:0;overflow-wrap:normal}.country-name i{width:20px;font-style:normal;text-align:center}
@media(max-width:800px){body{display:block}.stats-grid{grid-template-columns:1fr}.stats-card{padding:18px}.stats-bar-row{grid-template-columns:minmax(88px,160px) minmax(30px,1fr) max-content}.stats-columns{min-height:170px}.stats-column{height:145px}.country-layout{grid-template-columns:minmax(110px,150px) minmax(0,1fr);gap:16px}.country-legend{gap:8px}}
@media(min-width:681px) and (max-width:800px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:430px){.country-layout{grid-template-columns:minmax(0,1fr);justify-items:center;gap:14px}.country-donut{width:min(100%,160px)}.country-legend{width:100%;justify-self:stretch}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.stats-jam-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.stats-jam-list li{display:grid;grid-template-columns:18px 38px minmax(0,1fr);align-items:center;gap:10px;min-width:0}.stats-jam-rank{color:var(--subtle);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.stats-jam-photo{display:block;width:38px;height:38px;object-fit:cover;border-radius:50%;background:var(--soft)}.stats-jam-info{display:grid;gap:2px;min-width:0}.stats-jam-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-meta)}.stats-jam-info span,.stats-jam-info small{color:var(--muted);font-size:var(--type-meta);line-height:1.35}.stats-jam-info small{color:var(--subtle)}.stats-jam-all{display:inline-block;margin-top:8px}
.pane-section table.source-offers th:nth-child(1),.pane-section table.source-offers td:nth-child(1){width:40%}
.pane-section table.source-offers{width:calc(100% - 24px);max-width:calc(100% - 24px);margin-left:24px!important}
.pane-section,.pane-section>*{box-sizing:border-box;min-width:0;max-width:100%}
.pane-section table.source-offers th.source-match-col,.pane-section table.source-offers td.source-match-col{width:32px}
.pane-section table.source-offers th:nth-last-child(3),.pane-section table.source-offers td:nth-last-child(3){width:18%}
.pane-section table.source-offers th:nth-last-child(2),.pane-section table.source-offers td:nth-last-child(2){width:12%}
.pane-section table.source-offers th:last-child,.pane-section table.source-offers td:last-child{width:22%}
.pane-section table.source-offers td .est{display:block;white-space:normal;overflow-wrap:break-word}
@media(max-width:1023px){.pane-resize{display:none}.lib{table-layout:fixed}.lib .wide{display:none}}
@media(max-width:600px){
#view .head.row{flex-direction:column;align-items:stretch;gap:var(--s3)}
.head-copy{min-width:0}
.library-head-actions{width:100%;min-width:0;flex-wrap:wrap}
.library-head-actions .seg{min-width:0}
.toolbar>.tools{width:100%;max-width:100%;flex-wrap:wrap;margin-left:0}
.lib th:nth-child(3),.lib td:nth-child(3){width:58px}
.lib:not(.lib-no-vinyl-info) th:nth-child(4),.lib:not(.lib-no-vinyl-info) td:nth-child(4){width:82px}
.lib.lib-no-vinyl-info th:nth-child(4),.lib.lib-no-vinyl-info td:nth-child(4){display:none}
.lib td:first-child{padding-left:8px;padding-right:4px}
.lib .cell-album{width:100%;max-width:none;gap:8px}
.lib .cell-album>div{flex:1}
.lib .cell-album b,.lib .cell-album small{display:-webkit-box;white-space:normal;overflow:hidden;text-overflow:clip;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;line-height:1.25}
.lib .cover{width:32px;height:32px}
.pane-section{overflow-x:hidden}
.pane-section table.mini{width:100%;min-width:0;table-layout:fixed}
.pane-section table.mini th,.pane-section table.mini td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}
.pane-section table.source-offers th:nth-child(1),.pane-section table.source-offers td:nth-child(1){width:40%}
.pane-section table.source-offers th.source-match-col,.pane-section table.source-offers td.source-match-col{width:32px}
.pane-section table.source-offers th:nth-last-child(3),.pane-section table.source-offers td:nth-last-child(3){width:18%}
.pane-section table.source-offers th:nth-last-child(2),.pane-section table.source-offers td:nth-last-child(2){width:12%}
.pane-section table.source-offers th:last-child,.pane-section table.source-offers td:last-child{width:22%}
.pane-section table.source-offers td .est{display:block;white-space:normal;overflow-wrap:break-word}
.other-vinyl-results th:first-child,.other-vinyl-results td:first-child{width:50%}
.other-vinyl-results th:nth-child(2),.other-vinyl-results td:nth-child(2){width:32%}
.other-vinyl-results th:last-child,.other-vinyl-results td:last-child{width:18%}
.pane-section .criteria-table,.pane-section .criteria-table tbody{display:block;width:100%}
.pane-section .criteria-table tr{display:grid;grid-template-columns:50px minmax(0,1fr) 44px;align-items:start;gap:2px 8px;padding:7px 0}
.pane-section .criteria-table tbody th{grid-column:1;grid-row:1;width:auto;padding:5px 0}
.pane-section .criteria-table td:nth-child(2){grid-column:2;grid-row:1;padding:5px 0}
.pane-section .criteria-table td:nth-child(3){grid-column:1/-1;grid-row:2;padding:4px 0}
.pane-section .criteria-table .criterion-row{display:grid!important;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:start}
.pane-section .editions-table th:nth-child(1),.pane-section .editions-table td:nth-child(1){width:47%}
.pane-section .editions-table th:nth-child(2),.pane-section .editions-table td:nth-child(2){width:18%;white-space:nowrap}
.pane-section .editions-table th:nth-child(3),.pane-section .editions-table td:nth-child(3){width:35%;white-space:normal;overflow-wrap:normal;word-break:normal}
.pane-section .editions-table th:nth-child(n+4),.pane-section .editions-table td:nth-child(n+4){display:none}
.pane-section .editions-table .edition-cell{min-width:0}
.pane-section .editions-table .edition-content{flex-wrap:wrap;align-items:flex-start}
.pane-section .editions-table .edition-copy{flex-basis:100%}
.pane-section .editions-table .edition-counts{display:block;margin-top:3px;color:var(--subtle);font-size:var(--type-meta);line-height:1.25}
.pane-section .editions-table .edition-name,.pane-section .editions-table .edition-barcode{overflow-wrap:anywhere}
.pane-section .editions-table td:nth-child(3){overflow-wrap:normal}
.pane-section table.source-offers th,.pane-section table.source-offers td{width:auto!important}
.pane-section table.source-offers th.source-match-col,.pane-section table.source-offers td.source-match-col,.pane-section table.source-offers th:nth-last-child(2),.pane-section table.source-offers td:nth-last-child(2){display:none}
.pane-section table.source-offers{width:calc(100% - 24px);max-width:calc(100% - 24px);margin-left:24px!important}
.pane-section table.source-offers thead{display:none}
.pane-section table.source-offers tbody,.pane-section table.source-offers tbody tr{display:grid;width:100%}
.pane-section table.source-offers tbody tr{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:8px 0;border-bottom:1px solid var(--line)}
.pane-section table.source-offers tbody td{display:block;min-width:0;padding:2px 0;white-space:normal;overflow-wrap:normal}
.pane-section table.source-offers tbody td:first-child{grid-column:1/-1;overflow-wrap:break-word}
.pane-section table.source-offers tbody td:nth-last-child(3){grid-column:1;grid-row:2;text-align:left}
.pane-section table.source-offers tbody td:last-child{grid-column:1/-1;grid-row:3;text-align:left}
.pane-section table.source-offers td .est{display:block;white-space:normal;overflow-wrap:break-word}
.pane-section>summary h3{display:block;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.inline-form{min-width:0}
}
.pane-section .criteria-table tbody th{white-space:nowrap;overflow-wrap:normal}

/* DS2: carry the shared type, spacing, and touch-target system across every app screen. */
.range{flex-wrap:wrap;min-width:0}
.range input[type=number]{width:76px;min-width:76px}
.summary-close{width:48px;height:48px;min-width:48px;justify-content:center;padding:0;font-size:var(--type-title)}
.check-banner{min-height:48px;font-size:var(--type-ui)}
.stats-year-filter>span{font-weight:700}
.stats-jam-loading{display:grid;min-height:320px;place-items:center;margin:0;color:var(--muted);font-size:var(--type-ui)}
.library-page-size select,.collection-form-fields select{min-height:48px;font-size:var(--type-ui)}
@media(max-width:600px){.range input[type=number]{width:72px;min-width:72px}.stats-year-filter,.stats-year-choices{flex-wrap:wrap}.stats-card{padding:var(--s4)}.stats-bar-row{gap:var(--s2)}.stats-bar-label-stack .stat-label{font-size:var(--type-ui)}}
@media(max-width:800px){
body{overflow-x:hidden}
.sidebar{position:static;inset:auto;width:auto;height:auto;min-height:0;overflow:visible;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-right:0;border-bottom:1px solid var(--line)}
.sidebar-toggle{display:none}
#steps:not(.app-nav) .step-label{display:inline}
#steps:not(.app-nav){order:3;width:100%;margin:0;display:flex;flex-wrap:wrap;gap:var(--s2);overflow:visible}
#steps:not(.app-nav) a{white-space:nowrap;padding:6px 10px}
.sidebar-queue{order:10;flex:0 0 100%;width:100%;margin:0;padding:4px 0 2px}
.side-bottom{margin:0 0 0 auto;display:flex;align-items:center}
main{margin-left:0;padding:var(--s4)}
.wide{display:none}
td,th{padding-inline:var(--s2)}
.cell-album{max-width:calc(100vw - 190px)}
.num-input{width:60px}
.search,.search input{width:100%}
.tools{margin-left:0}
.menu-list{right:auto;left:0}
.import-row{flex-direction:column;align-items:stretch}
.step{grid-template-columns:minmax(0,1fr) auto}
.step-detail{grid-column:1/-1;justify-content:flex-start}
.tracks{columns:1}
#pane{inset:0;margin:0;width:100vw;max-width:100vw}
.pane-section{overflow-x:hidden}
.set-row{grid-template-columns:110px 1fr}
.set-checkbox{grid-template-columns:24px minmax(0,1fr)}
.set-row .range input{width:52px}
#paneBody{padding:var(--s4)}
}
@media(max-width:800px){body[data-sidebar-collapsed=true] .brand span,body[data-sidebar-collapsed=true] #steps .step-label,body[data-sidebar-collapsed=true] .side-link span{display:inline}}
@media(max-width:680px){.import-options{grid-template-columns:1fr}.spotify-picker-actions{align-items:flex-start}.playlist-buttons{flex-direction:column;align-items:flex-start}}
@media(max-width:680px){.sync-next{align-items:stretch;flex-direction:column}.sync-next .button{align-self:flex-start}}

.link-btn{background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:none}
.link-btn:hover{color:var(--accent);text-decoration:underline}
.usage-table .group-row th{font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.04em}
/* Phone width: each provider becomes a card with labelled fields, so Limit, Remaining, Cost and Status are all reachable */
@media(max-width:600px){
.set-body{grid-template-columns:minmax(0,1fr)}
.usage-table thead{display:none}
.usage-table,.usage-table tbody,.usage-table tr,.usage-table td{display:block;width:100%}
.usage-table .group-row th{display:block;padding:var(--s3) 0 var(--s1)}
.usage-table tr:not(.group-row):not(.usage-note-row){border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--s2) var(--s3);margin:0 0 var(--s2)}
.usage-table tr:not(.group-row):not(.usage-note-row) td{border:0;padding:3px 0}
.usage-table td[data-label]{display:flex;justify-content:space-between;align-items:center;gap:var(--s3)}
.usage-table td[data-label]::before{content:attr(data-label);color:var(--subtle);font-size:var(--type-meta);flex-shrink:0}
.usage-table td[data-label]>*:not(.muted){margin-left:auto}
.usage-table tr.usage-note-row td{border:0;padding:4px 0 0}
}

/* P1: Album pane styling updates */
.tracks li { display: flex; align-items: center; gap: 4px; }
.ic-track-check { display: inline-block; width: 14px; height: 14px; margin-right: 4px; vertical-align: -2px; flex-shrink: 0; stroke: var(--green, #2e7d32); }
.ic-track-spacer { display: inline-block; width: 14px; height: 14px; margin-right: 4px; flex-shrink: 0; }
.track-unliked { opacity: 0.7; }
.btn-plus { position:relative; display:inline-flex; align-self:flex-start; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--text); font-size:var(--type-ui); font-weight:500; line-height:1; cursor:pointer; }
.btn-plus::before { content:""; position:absolute; inset:8px; z-index:-1; border:1px solid var(--line); border-radius:50%; background:var(--surface); pointer-events:none; }
.btn-plus:hover::before { background:var(--line); }
.criterion-dialog { border: 1px solid var(--line); padding: 0; width: min(760px, 95vw); max-height: 90vh; overflow: auto; background: var(--surface); color: var(--text); }
.criterion-dialog::backdrop { background: #14110e66; }
.criterion-dialog .set-body>p{width:100%;max-width:none}
.criterion-dialog .set-body>div{width:100%;max-width:none;min-width:0}
.criterion-dialog .set-body>div>p{width:100%;max-width:none}
.best-copy-line { margin-top: var(--s2); margin-bottom: var(--s3); }
.hero-title-row { display: flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap; }
.est-price-anchor { position: relative; display: inline-flex; align-items: center; max-width: 100%; }
.est-prices { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.est-price { display: inline-flex; align-items: center; flex-wrap: nowrap; height: 30px; min-height: 30px; box-sizing: border-box; font-size:var(--type-meta); font-weight: 500; padding: 0 8px; border-radius:var(--radius-sm); background: var(--surface); border: 1px solid var(--line); color: var(--text); white-space: nowrap; }
.low-price a { color: inherit; text-decoration: none; }
.low-price a:hover { text-decoration: underline; }
.edition-choice { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.edition-choice .est { margin-left: auto; }
.edition-cell { min-width: 240px; }
.edition-content { display: flex; align-items: center; gap: 8px; min-width: 0; }
.edition-name { flex: 1; min-width: 0; }
.edition-counts { display: none; }
.edition-select { margin-left: auto; white-space: nowrap; }
.editions-table-wrap { position: relative; }
.pane-section .editions-table th:nth-child(1),.pane-section .editions-table td:nth-child(1){width:34%}
.pane-section .editions-table th:nth-child(2),.pane-section .editions-table td:nth-child(2){width:10%;white-space:nowrap}
.pane-section .editions-table th:nth-child(3),.pane-section .editions-table td:nth-child(3){width:13%;white-space:normal;overflow-wrap:normal;word-break:normal}
.pane-section .editions-table th:nth-child(4),.pane-section .editions-table td:nth-child(4){width:18%;white-space:normal;overflow-wrap:normal;word-break:normal}
.pane-section .editions-table th:nth-child(5),.pane-section .editions-table td:nth-child(5){width:13%;white-space:nowrap}
.pane-section .editions-table th:nth-child(6),.pane-section .editions-table td:nth-child(6){width:12%;white-space:nowrap}
.editions-table-wrap.is-busy > .editions-table, .editions-table-wrap.is-busy > .source-pager { opacity: .28; pointer-events: none; }
.editions-busy { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 16px; color: var(--text); background: color-mix(in srgb, var(--surface) 88%, transparent); text-align: center; }
.editions-busy[hidden] { display: none; }
.editions-spinner { width: 18px; height: 18px; flex: 0 0 18px; border: 2px solid var(--line); border-top-color: var(--accent); border-radius:50%; animation: editions-spin .8s linear infinite; }
@keyframes editions-spin { to { transform: rotate(360deg); } }
.library-vinyl-cell { display: grid; gap: 2px; min-width: 0; }
.library-vinyl-reasons { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s1); min-width: 0; }
.est-lead { display: inline-flex; align-items: center; gap: 2px; white-space: nowrap; }
.est-val, .low-val { white-space: nowrap; }
.est-arrow { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; flex: 0 0 20px; background: none; border: 0; border-radius:var(--radius-sm); padding: 0; font-size:var(--type-ui); font-weight: 700; line-height: 20px; color: var(--gold); cursor: pointer; }
.est-arrow:hover { background: none; color: var(--gold); }
.est-grades-wrap { position: absolute; left: 0; top: calc(100% + var(--s1)); z-index: 20; background: var(--surface); border: 1px solid var(--line); border-radius:var(--radius-sm); box-shadow: 0 6px 18px #0004; }
.est-grades-table { width: auto; border: 0; background: var(--surface); font-size:var(--type-meta); }
.est-grades-table tbody th, .est-grades-table td { padding: 3px var(--s3); height: auto; }
.est-grades-table tbody th { width: 48px; }
@media(max-width:600px){
.est-price { flex-direction: row; align-items: center; }
}
.scan-dialog { width:min(620px,94vw); max-height:92vh; overflow:auto; border:1px solid var(--line); border-radius:var(--radius-md); padding:0; background:var(--surface); color:var(--text); box-shadow:0 22px 80px #0005; }
.scan-dialog::backdrop { background:#14110eb8; backdrop-filter:blur(3px); }
.scan-body { display:grid; gap:16px; padding:clamp(18px,4vw,30px); }
.scan-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.scan-dialog-head h2 { margin:3px 0 0; font-size:var(--type-title); letter-spacing:-.03em; }
.scan-dialog-head p { margin:0; }
.scan-dialog .eyebrow { color:var(--subtle); font-size:var(--type-meta); letter-spacing:.12em; }
.scan-camera { width:100%; max-height:42vh; object-fit:cover; border-radius:var(--radius-sm); background:#111; }
.scan-actions,.scan-code-entry { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.scan-upload { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 14px; border:1px solid var(--line); border-radius:var(--radius-sm); font-weight:600; cursor:pointer; }
.scan-upload input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.scan-note { color:var(--subtle); font-size:var(--type-meta); line-height:1.5; }
.scan-code-entry input,.scan-search-fields input,.scan-body select { min-height:40px; padding:8px 10px; border:1px solid var(--line); border-radius:var(--radius-sm); color:var(--text); background:var(--bg); }
.scan-code-entry input { flex:1; min-width:150px; }
.scan-search-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.scan-search-fields label,.scan-body label:not(.scan-upload) { display:grid; gap:5px; color:var(--subtle); font-size:var(--type-meta); }
.scan-search-fields label:nth-child(3) { grid-column:1 / -1; }
.scan-search-fields button { grid-column:1 / -1; justify-self:start; }
.scan-result-card { display:flex; align-items:center; gap:16px; padding:12px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--bg); }
.scan-result-card img { width:84px; height:84px; object-fit:cover; border-radius:var(--radius-sm); }
.scan-result-card p { margin:5px 0 0; color:var(--subtle); font-size:var(--type-meta); }
.scan-candidate-list { display:grid; gap:8px; }
.scan-candidate { display:flex; align-items:center; gap:12px; width:100%; padding:9px; text-align:left; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--bg); color:var(--text); cursor:pointer; }
.scan-candidate:hover { border-color:var(--accent); }
.scan-candidate img { width:46px; height:46px; object-fit:cover; border-radius:var(--radius-sm); }
.scan-candidate span { display:grid; gap:4px; }
.scan-candidate small { color:var(--subtle); }
@media(max-width:520px){ .scan-search-fields { grid-template-columns:1fr; } .scan-search-fields label:nth-child(3),.scan-search-fields button { grid-column:auto; } }
.liked-title { display: inline-flex; align-items: center; gap: 4px; }
.liked-title img.fav { vertical-align: -2px; }
.source-controls { display:flex; align-items:center; flex-wrap:wrap; gap:var(--s3); margin:0 0 var(--s2); }
.source-pager { display:flex; align-items:center; gap:var(--s3); margin:0 0 var(--s3) 24px; font-size:var(--type-meta); }
.library-pager { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:var(--s3); margin:0 0 var(--s3); font-size:var(--type-meta); }
.library-pager button { white-space:nowrap; }
.library-page-size { display:flex; align-items:center; gap:var(--s1); color:var(--muted); }
.library-page-size select { min-height:30px; padding:3px 22px 3px 7px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--surface); color:var(--text); }
@media(max-width:400px){.library-pager{justify-content:space-between;gap:6px}.library-page-size{margin-left:auto}}
.barcode-search{display:flex;align-items:end;gap:var(--s2);margin:var(--s2) 0 var(--s3)}
.barcode-search label{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:var(--muted);font-size:var(--type-meta);white-space:nowrap}
.barcode-choice-label{display:grid;gap:6px;color:var(--muted);font-size:var(--type-meta)}
.barcode-search-input{width:min(240px,calc(100vw - 170px));min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-variant-numeric:tabular-nums}
.barcode-search-input:focus{outline:2px solid var(--accent);outline-offset:1px}
.barcode-search-clear{min-width:32px;height:36px;font-size:var(--type-body)}
.barcode-search-note{margin:0 0 var(--s2);color:var(--muted);font-size:var(--type-meta)}
.edition-copy{flex:1;min-width:0}
.edition-barcode{display:block;margin-top:3px;color:var(--muted);font-size:var(--type-meta);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.barcode-match{padding:0 1px;background:color-mix(in srgb,var(--accent) 24%,transparent);color:var(--text);font-weight:700}
.barcode-choice-label{margin:var(--s3) 0 var(--s2)}
.barcode-choice-list{display:grid;gap:6px;min-width:0;max-height:40vh;overflow-x:hidden;overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}
.barcode-choice{display:grid;gap:3px;width:100%;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);text-align:left;font:inherit;white-space:normal;cursor:pointer}
.barcode-choice[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}
.barcode-choice-name{font-size:var(--type-meta);overflow-wrap:anywhere}
.muted-tag { color: var(--subtle); font-weight: 500; font-size:var(--type-meta); }
.have-want { display: inline-flex; align-items: center; gap: 7px; }
.want-have-ratio { font-size:var(--type-meta); font-weight: 400; line-height: 1.3; white-space: nowrap; }
.want-have-ratio.positive { color: #16794b; }
.want-have-ratio.neutral { color: #667085; }
.want-have-ratio.negative { color: #b42318; }

.account-page{max-width:1120px;margin:0 auto;padding:clamp(18px,4vw,54px)}
.settings-page{display:grid;gap:var(--s5)}
.crate-card-stack,.account-cards,.admin-sections,.stats-grid,.stats-grid-column,.collection-grid,.buy-grid,.below-grid{gap:var(--s4)}
.settings-page>.crate-card-stack{display:grid}
.settings-page .page-head{margin:0}
.settings-page .settings-section{display:grid;gap:var(--s3);padding:clamp(18px,3vw,28px);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.settings-page .settings-section>h2{margin:0;font-size:var(--type-section);letter-spacing:-.025em}
.settings-page .set-body{padding:0}
.settings-page .set-foot{justify-content:flex-start;padding:0}
.settings-page .settings-group{display:grid;gap:var(--s2)}
.settings-page .settings-group>h3{margin:0;font-size:var(--type-ui);font-weight:650}
.settings-page .settings-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.settings-page .settings-fields .set-row{font-size:var(--type-ui)}
.settings-page .settings-fields .set-row.set-checkbox{grid-column:1/-1;grid-template-columns:24px minmax(0,1fr);align-items:start}
.settings-page .settings-fields .set-row.set-checkbox>input[type=checkbox]{width:16px;min-width:16px;height:16px;min-height:16px}
.settings-page .settings-group-note{margin:0;color:var(--muted);font-size:var(--type-ui)}
.settings-page .settings-group-note{grid-column:1/-1}
.settings-page .settings-weights{display:contents}
.settings-page .settings-fields .set-row{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;align-items:start;gap:8px;min-width:0}
.settings-page .settings-fields .set-row input,.settings-page .settings-fields .set-row select{width:100%;max-width:none;min-height:44px}
.settings-page .settings-save-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}
.settings-page .settings-save-row .line{margin:4px 0 0}
.settings-page .settings-save-row .line:empty{display:none}
.settings-page #settings-account-content .account-page{max-width:none;margin:0;padding:0}
.settings-page #settings-account-content .account-status:empty{display:none;min-height:0}
.settings-page #settings-account-content .account-cards{gap:var(--s4)}
.settings-page #settings-account-content .account-card{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.settings-page #settings-account-content .account-card+.account-card{margin:0;padding-top:0;border-top:0}
.account-discogs-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--s3);width:100%;max-width:520px}
.account-discogs-row{display:grid;gap:var(--s2);width:100%;color:var(--muted);font-size:var(--type-ui)}
.account-discogs-row input{width:100%;min-width:0;min-height:48px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}
.account-discogs-form>button{white-space:nowrap}
@media(max-width:480px){.account-discogs-form{grid-template-columns:minmax(0,1fr)}.account-discogs-form>button{grid-column:1;justify-self:start}}
.settings-page .account-session-row{padding-top:var(--s3);border-top:1px solid var(--line)}
.settings-account-status:empty{display:none}
.sync-similar-step{margin-top:var(--s6);padding:clamp(18px,3vw,28px);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.sync-similar-step .head{margin-top:0}
.sync-similar-step .head p{max-width:none}
.sync-similar-step .head h2{margin:0 0 var(--s1);font-size:var(--type-title)}
.sync-similar-step .actions{display:flex;gap:var(--s2);flex-wrap:wrap}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}
.page-head h1{margin:4px 0;font-size:var(--type-page);letter-spacing:-.045em}
.page-head p{margin:0}
.account-page .eyebrow{color:var(--subtle);font-size:var(--type-meta);letter-spacing:.13em;font-weight:700}
.account-status{min-height:20px;color:var(--muted);font-size:var(--type-meta)}
.account-status.error{color:var(--red)}
.account-cards,.admin-sections{display:grid;gap:16px}
.account-card{display:grid;align-content:start;gap:12px;padding:clamp(18px,3vw,28px);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 8px 30px #00000008}
.account-card h2{margin:0;font-size:var(--type-section);letter-spacing:-.025em}
.account-card p{margin:0;color:var(--muted);line-height:1.55}
.account-card .eyebrow{margin-bottom:-7px}
.api-access-card{min-width:0}
.api-doc-link{width:max-content}
.api-token-form{display:flex;align-items:end;gap:var(--s3);flex-wrap:wrap}
.api-token-form label{display:grid;gap:var(--s2);width:min(320px,100%);color:var(--muted);font-size:var(--type-meta)}
.api-token-form input{width:100%;min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit}
.api-token-list{display:grid;gap:var(--s2)}
.api-token-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3);border:1px solid var(--line)}
.api-token-row strong{font-size:var(--type-ui)}
.api-token-row p{font-size:var(--type-meta)}
.api-token-secret{display:grid;gap:var(--s2);padding:var(--s3);border:1px solid var(--line);background:var(--bg)}
.api-token-secret-row{display:flex;align-items:center;gap:var(--s2);min-width:0}
.api-token-value{overflow-wrap:anywhere;user-select:all;color:var(--text)}
@media(max-width:520px){.api-token-form{align-items:stretch;flex-direction:column}.api-token-form label{width:100%}.api-token-row{align-items:flex-start}.api-token-secret-row{align-items:stretch;flex-direction:column}}
.spotify-slot-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.spotify-slot-form label{display:grid;gap:5px;color:var(--muted);font-size:var(--type-meta)}
.spotify-slot-form input{width:min(320px,75vw);min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--type-meta)}
.account-page button,.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;width:max-content;padding:0 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--type-meta);font-weight:600;cursor:pointer}
.account-page button:hover,.button-link:hover{border-color:var(--accent);text-decoration:none}
.account-page button:disabled{opacity:.55;cursor:wait}
.account-page .danger-button{color:var(--red)}
.account-page .text-link{color:var(--muted);font-size:var(--type-meta)}
.admin-user-list,.admin-waitlist{display:grid;gap:10px}
.admin-user,.admin-waitlist-row{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(210px,1.5fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}
.admin-user h3{margin:0 0 6px;font-size:var(--type-ui)}
.admin-user-badges,.admin-user-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.status-pill{display:inline-flex;border:1px solid var(--line);color:var(--muted);font-size:var(--type-meta)}
.status-pill.free-slot{border-color:color-mix(in srgb,var(--green) 40%,var(--line));color:var(--green)}
.admin-facts{display:flex;gap:18px;margin:0}
.admin-facts div{display:grid;gap:3px}
.admin-facts dt{color:var(--subtle);font-size:var(--type-meta)}
.admin-facts dd{margin:0;font-size:var(--type-meta);font-variant-numeric:tabular-nums}
.admin-cap-form{grid-column:1/-1;display:flex;align-items:end;gap:10px;padding-top:8px;border-top:1px solid var(--line)}
.admin-cap-fields{display:flex;gap:10px;flex-wrap:wrap}
.admin-cap-fields label{display:grid;gap:4px;color:var(--muted);font-size:var(--type-meta)}
.admin-cap-fields input{width:110px;min-height:34px;padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--type-meta)}
.admin-slot-count{font-size:var(--type-meta);font-weight:600}
.admin-waitlist-row{grid-template-columns:1fr auto auto}
.admin-waitlist-row p{margin:4px 0 0;font-size:var(--type-meta)}
.admin-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.admin-not-used{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:var(--type-meta)}
.admin-not-used summary,.source-not-used summary{cursor:pointer;color:var(--muted);font-weight:600}
.admin-not-used ul,.source-not-used ul{display:grid;gap:6px;margin:10px 0 0;padding-left:20px}
.admin-not-used li,.source-not-used li{overflow-wrap:anywhere}
.source-not-used{margin:8px 0 2px;padding-top:8px;border-top:1px solid var(--line);font-size:var(--type-meta)}
.admin-source{display:flex;justify-content:space-between;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--type-meta)}
.admin-source-name,.admin-source-state{display:inline-flex;align-items:center;gap:8px;min-width:0}
.admin-source-name strong{overflow-wrap:anywhere}
.admin-source-copy{display:grid;gap:3px;min-width:0}
.admin-source:has(button.source-details-link){gap:4px;padding:4px}
.admin-source:has(button.source-details-link) .admin-source-name{gap:4px}
.admin-source-copy button.source-details-link{display:block;width:100%;max-width:100%;min-width:0;white-space:nowrap;overflow-wrap:normal;text-align:left;font-size:var(--type-meta);font-weight:700}
button.source-details-link{min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--text);font:inherit;text-align:left;white-space:normal;overflow-wrap:normal}
.source-head button.source-details-link{font-weight:500}
button.source-details-link:hover{background:transparent;color:var(--text);text-decoration:underline}
.admin-source-detail{display:block;max-width:100%;overflow-wrap:anywhere;color:var(--muted);font-size:var(--type-meta);font-weight:400;line-height:1.35}
.admin-source-icon{width:16px;height:16px;flex:none;object-fit:contain}
.admin-source-icon-placeholder{display:inline-block;width:16px;height:16px;flex:none;border:1px solid var(--line);border-radius:4px;background:var(--soft)}
.admin-source-dot{position:relative;display:inline-block;width:10px;height:10px;flex:none;border-radius:50%;background:var(--muted);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--line)}
.admin-source-dot.working{background:var(--green)}
.admin-source-dot.attention{background:var(--amber)}
.admin-source-dot.failing{background:var(--red)}
.admin-source-dot.unavailable{background:var(--muted)}
.admin-source-dot:hover::after,.admin-source-dot:focus::after{position:absolute;z-index:5;right:-8px;bottom:calc(100% + 9px);width:max-content;max-width:min(220px,70vw);padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:0 5px 16px #0002;color:var(--text);content:attr(data-tooltip);font:500 var(--type-meta)/1.35 var(--font);white-space:normal}
.admin-source-dot:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.admin-source-legend,.admin-account-help{color:var(--muted);font-size:var(--type-meta)}
.admin-source-legend{margin-top:10px}
.admin-account-help{margin:0 0 12px;line-height:1.5}
@media(max-width:820px){.admin-user{grid-template-columns:minmax(0,1fr)}.admin-user>:first-child,.admin-user>:nth-child(2),.admin-user-actions,.admin-cap-form{min-width:0}.admin-waitlist-row>div{min-width:0}}
@media(max-width:760px){.account-page{padding:22px 16px}.page-head{align-items:flex-start}.admin-user-actions{grid-row:2}.admin-cap-form{grid-column:auto;align-items:flex-start;flex-direction:column}.admin-waitlist-row{grid-template-columns:1fr auto}.admin-waitlist-row .button-link,.admin-waitlist-row button{grid-column:1/-1}}
@media(max-width:680px){.sync-similar-step .actions>*{width:100%}.settings-page .set-row{grid-template-columns:1fr;gap:8px}.settings-page .set-row input,.settings-page .set-row select{width:100%;min-height:48px}.filter-checks{flex-wrap:wrap}}
@media(max-width:680px){.settings-page .settings-weights{grid-template-columns:1fr}.settings-page .settings-weights .set-row{grid-template-columns:1fr}.settings-page .settings-weights .set-row input{width:100%}}
@media(max-width:600px){.settings-page .settings-save-row{align-items:flex-start;flex-wrap:wrap}}

/* DS2: keep Account and Admin controls at the shared touch-target and type sizes. */
.account-page button,.account-page .button-link{min-height:48px;font-size:var(--type-ui)}
.account-page button,.account-page .button-link{border-radius:var(--radius-pill)}
.spotify-slot-form input,.admin-cap-fields input{min-height:48px;font-size:var(--type-ui)}
.spotify-slot-form input{border-radius:var(--radius-md)}
.admin-cap-fields input{width:120px}
.admin-user h3,.admin-waitlist-row strong{overflow-wrap:anywhere}

.added-artist-dialog{box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-height:88vh;overflow-x:hidden;overflow-y:auto;padding:24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:0 22px 80px #0005}
.added-artist-dialog::backdrop{background:#14110eb8;backdrop-filter:blur(3px)}
.added-artist-dialog h2{margin:0 0 6px;font-size:var(--type-title);letter-spacing:-.03em}
.added-artist-input{width:100%;margin:14px 0;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}
.added-artist-status{margin:8px 0;color:var(--muted);font-size:var(--type-meta)}
.added-artist-options{display:grid;gap:8px;width:100%;min-width:0}
.added-artist-choice{box-sizing:border-box;display:grid;gap:3px;width:100%;min-width:0;padding:12px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer}
.added-artist-choice:hover{border-color:var(--accent);background:var(--soft)}
.added-artist-choice span,.added-artist-choice small{display:block;max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;color:var(--muted);font-size:var(--type-meta)}
.added-artist-dialog .crate-modal-actions{margin-top:16px}
.added-artist-mark{display:inline-flex;width:15px;height:15px;margin-left:5px;vertical-align:-2px;color:var(--muted)}
.added-artist-mark svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.explore-artist{display:inline-flex;align-items:center;gap:5px;margin:0 12px 5px 0;white-space:nowrap}
.explore-add{font-size:var(--type-meta)}
.artist-add-icon{z-index:0;flex:none;color:var(--text);font-size:var(--type-ui)}
.artist-add-icon::before{inset:8px}
.artist-add-icon svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.artist-add-icon.is-added{color:var(--green);cursor:default}
.artist-add-icon.is-added:hover::before{background:var(--surface)}

.usage-page{display:grid;gap:var(--s4)}
.usage-page .page-head{align-items:center;margin:0}
.usage-page>.settings-section{display:grid;gap:var(--s3);padding:clamp(18px,3vw,28px);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.usage-page .settings-section{min-width:0;overflow:hidden}
.usage-page .usage-loading{margin:0}
.usage-page .calc-card{padding:0;border:0;background:none}
.usage-page .calc-card h3{margin-top:0}
.usage-page .calc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.usage-page .calc-grid label{display:grid;gap:var(--s1);align-content:start}
.usage-page .calc-grid input,.usage-page .calc-grid select{width:100%;min-height:44px}
.usage-page .usage-providers{overflow-x:auto}
.admin-source-dot{width:12px;height:12px;background:#858585}
.admin-source-dot.working{background:#36a65c}
.admin-source-dot.attention{background:#e6a92e}
.admin-source-dot.failing{background:#dc554d}
@media(max-width:680px){.settings-page .settings-fields{grid-template-columns:minmax(0,1fr)}.settings-page .settings-fields .set-row input,.settings-page .settings-fields .set-row select{min-height:48px}}
@media(max-width:600px){.usage-page .calc-grid{grid-template-columns:minmax(0,1fr)}}
table.mini,table.mini *{font-size:var(--type-meta)!important}
