.discography-page { margin-top:10px; font-size:15px; }
.discography-head { margin-bottom:10px; }
.discography-title-row { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.discography-title-row h2 { margin-bottom:5px; font-size:18px; }
.discography-desc { font-size:12px; line-height:1.4; }
.discography-head-actions { display:flex; align-items:center; gap:10px; }
.discography-stats { display:flex; gap:11px; font-size:15px; opacity:.72; white-space:nowrap; padding-top:2px; }
.discography-stats span { display:inline-flex; align-items:center; gap:5px; }
.discography-add-release { width:32px; height:32px; flex:0 0 32px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#cadceb; font-size:16px; text-decoration:none; transition:background .15s ease,color .15s ease; }
.discography-add-release:hover { background:#105289; color:#fff; }
.discography-search-filter { margin-top:11px; }
.discography-search { display:flex; max-width:640px; }
.discography-search input { flex:1; min-width:0; height:36px; border:1px solid #bcbdc1; border-radius:7px 0 0 7px; padding:0 11px; font-size:14px; }
.discography-search button { width:42px; border:1px solid #bcbdc1; border-left:0; border-radius:0 7px 7px 0; cursor:pointer; font-size:13px; }
.discography-search button.has-reset { border-radius:0; }
.discography-search-reset { width:36px; height:34px; flex:0 0 36px; display:flex; align-items:center; justify-content:center; border:1px solid #bcbdc1; border-left:0; border-radius:0 7px 7px 0; font-size:13px; text-decoration:none; opacity:.7; }
.discography-search-reset:hover { opacity:1; }
.discography-filters { display:flex; flex-wrap:wrap; align-items:flex-end; gap:7px 9px; margin-top:8px; }
.discography-filters label { display:flex; flex-direction:column; gap:2px; font-size:12px; font-weight:600; }
.discography-filters select { min-width:118px; height:30px; border:1px solid #bcbdc1; border-radius:5px; padding:0 7px; font-size:12px; }
.discography-label-filter select { min-width:180px; max-width:270px; }
.discography-filter-apply { height:30px; padding:0 12px; border:1px solid #bcbdc1; border-radius:5px; cursor:pointer; font-size:12px; }
.discography-filter-reset { height:30px; display:flex; align-items:center; padding:0 4px; font-size:12px; }
.discography-az { position:sticky; top:var(--discography-sticky-top, 0px); z-index:19; display:flex; flex-wrap:wrap; gap:5px; padding:8px 7px 7px; margin:0 0 8px; background:#f1f1f1; border-bottom:1px solid rgba(128,128,128,.18); box-shadow:0 2px 5px rgba(0,0,0,.06); }
.discography-az a { position:relative; min-width:30px; padding:4px 8px; text-align:center; border:1px solid rgba(16,82,137,.34); border-radius:4px; background:rgba(255,255,255,.32); text-decoration:none; font-family:Play, sans-serif; font-size:16px; font-weight:700; line-height:1.15; transition:background .15s ease,border-color .15s ease,color .15s ease; }
.discography-az a:hover { background:#cadceb; border-color:#105289; color:#105289; }
.unread-dot { display:inline-block; width:7px; height:7px; margin-left:5px; border-radius:50%; background:#d31141; vertical-align:middle; }
.discography-latest, .discography-results { margin-bottom:10px; }
.discography-latest h3 { margin-top:0; font-size:11px; font-weight:600; opacity:.8; }
.discography-results h3 { margin-top:0; font-size:11px; font-weight:600; opacity:.8; }
.discography-result-section + .discography-result-section { margin-top:15px; padding-top:12px; border-top:1px solid rgba(128,128,128,.18); }
.discography-result-section h4 { margin:0 0 7px; font-size:12px; font-weight:600; opacity:.78; }
.discography-result-section h4 .fa { width:16px; margin-right:5px; text-align:center; }
.discography-result-artists { margin-top:0; }
.discography-no-results { margin:4px 0 0; }
.discography-latest-strip { display:flex; gap:6px; overflow-x:auto; margin:0; padding:2px 0 6px; list-style:none; }
.discography-latest-strip li { flex:0 0 auto; margin:0; padding:0; list-style:none; }
.discography-latest-strip a[data-tooltip] { position:relative; display:block; }
.discography-latest-strip a[data-tooltip]::before, .discography-latest-strip a[data-tooltip]::after { display:none !important; }
.discography-latest-strip img { width:105px; height:105px; object-fit:cover; border-radius:8px; display:block; filter:alpha(Opacity=88); opacity:.88; transition:opacity .15s ease; }
.discography-latest-strip a:hover img { filter:alpha(Opacity=100); opacity:1; }
.discography-floating-tooltip {
    position:fixed;
    z-index:10000;
    max-width:min(360px, calc(100vw - 16px));
    padding:6px 9px;
    border-radius:4px;
    background:#333;
    color:#fff;
    box-shadow:0 6px 18px rgba(0,0,0,.28);
    font-family:Helvetica, Arial, sans-serif;
    font-size:11px;
    line-height:1.2;
    text-align:center;
    white-space:normal;
    overflow-wrap:anywhere;
    pointer-events:none;
    opacity:0;
    visibility:hidden;
    transform:translateY(-.5em);
    transition:opacity 300ms ease-out, transform 300ms ease-out, visibility 0s linear 300ms;
}
.discography-floating-tooltip--below:not(.is-visible) { transform:translateY(.5em); }
.discography-floating-tooltip::after {
    content:"";
    position:absolute;
    left:50%;
    top:100%;
    margin-left:-5px;
    border:5px solid transparent;
    border-top-color:#333;
}
.discography-floating-tooltip--below::after {
    top:auto;
    bottom:100%;
    border-top-color:transparent;
    border-bottom-color:#333;
}
.discography-floating-tooltip.is-visible {
    opacity:.9;
    visibility:visible;
    transform:translateY(0);
    transition:opacity 300ms ease-out, transform 300ms ease-out, visibility 0s;
}

.discography-result-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:9px; }
.discography-result { display:flex; gap:11px; align-items:center; min-width:0; padding:9px; border-radius:8px; background:rgba(0,0,0,.03); text-decoration:none; }
.discography-result img, .result-icon { width:64px; height:64px; flex:0 0 64px; border-radius:7px; object-fit:cover; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.06); font-size:20px; }
.discography-result-text { min-width:0; }
.discography-result-text > strong { display:block; font-size:16px; line-height:1.3; }
.discography-result--artist .discography-result-text > strong { font-family:Oswald, sans-serif; font-size:16px; font-weight:500; }
.discography-result--release .discography-result-text > strong { font-family:Scada, sans-serif; font-size:14px; }
.discography-result small { display:block; opacity:.68; margin-top:3px; font-size:13px; }
.discography-result small .fa { width:14px; margin-right:4px; text-align:center; }
.discography-letter { scroll-margin-top:var(--discography-anchor-offset, 108px); margin-bottom:11px; }
.discography-letter-head { display:flex; align-items:center; gap:14px; padding:3px; text-decoration:none; }
.discography-letter-head > .fa { margin-left:auto; opacity:.45; font-size:16px; }
.discography-letter-image { width:76px; height:76px; flex:0 0 76px; display:flex; align-items:center; justify-content:center; border-radius:0; overflow:visible; background:transparent; }
.discography-letter-image img { width:100%; height:100%; object-fit:contain; }
.discography-letter-image strong { font-size:34px; }
.discography-letter-meta strong { display:block; font-family:Oswald, sans-serif; font-size:23px; font-weight:500; }
.discography-letter-meta small { display:flex; align-items:center; gap:5px; margin-top:4px; opacity:.68; font-size:14px; }
.discography-artists { display:grid; grid-template-columns:repeat(auto-fill,minmax(315px,1fr)); gap:10px; margin-top:15px; }
.discography-artist-card { display:flex; gap:12px; align-items:center; min-width:0; padding:9px; border-radius:9px; background:rgba(0,0,0,.025); text-decoration:none; transition:background .15s ease, transform .15s ease; }
.discography-artist-card:hover { background:rgba(16,82,137,.08); transform:translateY(-1px); }
.artist-image { width:80px; height:80px; flex:0 0 80px; border-radius:9px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.06); font-size:24px; }
.artist-image img { width:100%; height:100%; object-fit:cover; }
.artist-text { min-width:0; }
.artist-text strong { display:block; overflow-wrap:anywhere; font-family:Oswald, sans-serif; font-size:16px; font-weight:500; line-height:1.25; }
.artist-text small { display:block; opacity:.68; margin-top:4px; font-size:12px; line-height:1.35; }
.artist-meta > span { display:block; }
.artist-meta .fa { width:14px; margin-right:4px; text-align:center; opacity:.78; }
.artist-year-range { margin-bottom:1px; }
.artist-editorial-meta { opacity:.76; }
.discography-direct { margin-top:16px; padding-top:13px; border-top:1px solid rgba(128,128,128,.2); }
.discography-direct h4 { display:none; }
.discography-topic-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:8px; }
.discography-topic-card { display:flex; gap:10px; align-items:center; min-width:0; padding:7px; border-radius:8px; background:rgba(0,0,0,.022); text-decoration:none; }
.discography-topic-card:hover { background:rgba(16,82,137,.07); }
.release-image { width:74px; height:74px; flex:0 0 74px; border-radius:8px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.06); font-size:20px; }
.release-image img { width:100%; height:100%; object-fit:cover; }
.release-text { min-width:0; }
.release-text > strong { display:block; font-family:Scada, sans-serif; font-size:14px; line-height:1.3; overflow-wrap:anywhere; }
.release-year { display:inline-block; margin-right:6px; padding:1px 6px; border-radius:9px; background:#cadceb; font-size:12px; font-style:normal; font-weight:700; vertical-align:1px; }
.release-year .fa { margin-right:4px; font-size:10px; }
.release-type { display:block; margin-top:3px; font-size:12px; opacity:.7; }
.release-type .fa { margin-right:4px; }
.release-tags { display:flex; flex-wrap:wrap; gap:3px; margin-top:5px; }
.release-tags em { padding:1px 6px; border-radius:9px; background:rgba(202,220,235,.6); font-size:11px; font-style:normal; opacity:.9; }

.discography-other-topics { margin-top:13px; padding-top:11px; border-top:1px dashed rgba(128,128,128,.2); }
.discography-other-topic-list { display:flex; flex-direction:column; gap:4px; }
.discography-other-topic { display:flex; align-items:flex-start; gap:8px; padding:5px 7px; border-radius:6px; text-decoration:none; background:rgba(0,0,0,.012); }
.discography-other-topic:hover { background:rgba(16,82,137,.055); }
.other-topic-icon { width:20px; flex:0 0 20px; padding-top:1px; text-align:center; opacity:.58; font-size:13px; }
.other-topic-text { min-width:0; }
.other-topic-text > strong { display:block; font-family:Scada, sans-serif; font-size:13px; font-weight:600; line-height:1.3; overflow-wrap:anywhere; }
.discography-other-topic .release-tags { margin-top:3px; }
@media (max-width:700px) {
    .discography-page { font-size:14px; }
    .discography-title-row { display:block; }
    .discography-head-actions { margin-top:7px; justify-content:space-between; }
    .discography-stats { white-space:normal; font-size:14px; }
    .discography-search { max-width:none; }
    .discography-filters { align-items:stretch; }
    .discography-filters label { flex:1 1 135px; }
    .discography-filters select, .discography-label-filter select { min-width:0; max-width:none; width:100%; }
    .discography-letter-image { width:62px; height:62px; flex-basis:62px; }
    .discography-artists { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .discography-artist-card { display:block; text-align:center; }
    .artist-image { width:86px; height:86px; margin:0 auto 7px; }
    .artist-text strong { font-size:16px; }
    .discography-latest-strip img { width:90px; height:90px; }
    .discography-topic-list { grid-template-columns:1fr; }
}
@media (max-width:600px) {
    /* Ten equal columns keep the alphabet compact on phones and avoid
       a fourth row containing only one letter on common phone and narrow-tablet widths. */
    .discography-az {
        display:grid;
        grid-template-columns:repeat(10, minmax(0, 1fr));
        gap:3px;
        margin-left:0;
        margin-right:0;
        padding:6px 4px;
        width:100%;
        box-sizing:border-box;
    }
    .discography-az a {
        min-width:0;
        padding:4px 1px;
        font-size:14px;
        box-sizing:border-box;
    }
    .discography-artists { grid-template-columns:1fr 1fr; }
    .artist-image { width:80px; height:80px; }
    .release-image { width:68px; height:68px; flex-basis:68px; }
}
.discography-alias-icon { margin-left:5px; font-size:.72em; opacity:.5; vertical-align:1px; }
