/* Unified library: intentionally scoped to preserve existing product actions. */
.portal-library { color: #e7eefb; }
.portal-library-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:26px; }
.portal-library-heading h1 { font-size:clamp(1.8rem,3vw,2.35rem); font-weight:750; letter-spacing:-.035em; margin:4px 0 10px; }
.portal-library-heading p:not(.portal-library-eyebrow) { color:#aebbd1; max-width:650px; line-height:1.6; }
.portal-library-eyebrow { color:#93a4c2; font-size:.68rem; font-weight:750; letter-spacing:.13em; text-transform:uppercase; }
.portal-library button, .portal-library-dialog button { font:inherit; cursor:pointer; }
.portal-library button:disabled { opacity:.6; cursor:wait; }
.portal-library button:focus-visible, .portal-library input:focus-visible, .portal-library select:focus-visible, .portal-library-dialog :is(button,a):focus-visible { outline:3px solid #78dedb; outline-offset:3px; }
.portal-library-refresh, .portal-library-primary { border:1px solid #3a4d6b; background:#17253c; border-radius:10px; padding:11px 16px; color:#edf3ff; font-size:.84rem!important; font-weight:650!important; white-space:nowrap; }
.portal-library-refresh:hover, .portal-library-primary:hover { background:#213550; border-color:#8ba4c4; }
.portal-library-summary { display:flex; gap:35px; border:1px solid #26374e; border-radius:14px; background:linear-gradient(115deg,#142238,#111c2f); padding:22px 26px; margin-bottom:24px; }
.portal-library-summary > div { display:flex; align-items:center; gap:12px; }
.portal-library-summary strong { font-size:1.85rem; font-weight:730; letter-spacing:-.05em; }
.portal-library-summary span { font-size:.8rem; color:#acbad1; max-width:150px; line-height:1.5; }
.portal-library-toolbar { display:grid; grid-template-columns:minmax(180px,1fr) repeat(3,minmax(135px,.55fr)); gap:14px; padding:18px 0; }
.portal-library-toolbar label { display:flex; flex-direction:column; gap:8px; min-width:0; }
.portal-library-toolbar label > span { color:#aebbd1; font-size:.74rem; font-weight:650; }
.portal-library-toolbar :is(input,select) { width:100%; min-width:0; height:44px; border-radius:9px; padding:0 12px; color:#edf3ff; background:#111d30; border:1px solid #33445f; font:inherit; font-size:.8rem; color-scheme:dark; }
.portal-library-toolbar input::placeholder { color:#8fa1bc; }
.portal-library-notice { border:1px solid #8a743e; color:#f1deb2; background:#322c20; padding:14px 17px; border-radius:10px; font-size:.85rem; line-height:1.6; margin:10px 0 16px; }
.portal-library-notice[hidden] { display:none; }
.portal-library-results-header { padding:12px 0 17px; display:flex; align-items:center; justify-content:space-between; }
.portal-library-count { color:#93a4bf; font-size:.78rem; }
.portal-library-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.portal-library-card { min-width:0; border:1px solid #2a3a54; border-radius:15px; overflow:hidden; background:#111e32; display:flex; flex-direction:column; transition:border-color .15s, transform .15s; }
.portal-library-card:hover { border-color:#536b90; transform:translateY(-2px); }
.portal-library-card-open { border:0; padding:0; width:100%; background:transparent; color:inherit; text-align:left; }
.portal-library-card-art { height:176px; position:relative; display:grid; place-items:center; background:radial-gradient(ellipse at 20% 15%,#1e3c55,#0a1424 80%); overflow:hidden; border-bottom:1px solid #26374e; }
.portal-library-card-art img { position:absolute; width:100%; height:100%; object-fit:contain; padding:12px; }
.portal-library-art-fallback { display:grid; place-items:center; width:64px; height:64px; color:#63d7d0; border:1px solid #45617a; border-radius:17px; background:#132942; font-size:1.35rem; font-weight:850; letter-spacing:-.07em; box-shadow:8px 8px 0 #0c1829; }
.portal-library-art-fallback[hidden] { display:none; }
.portal-library-card-copy { padding:19px 19px 10px; }
.portal-library-card h2 { margin:8px 0 8px; color:#f0f5fe; font-size:1.02rem; line-height:1.4; font-weight:700; min-height:2.8em; overflow-wrap:anywhere; }
.portal-library-sku { color:#91a1ba; font-size:.69rem; letter-spacing:.03em; overflow-wrap:anywhere; }
.portal-library-method-tags { display:flex; flex-wrap:wrap; gap:6px; padding:9px 19px 19px; flex:1; align-content:flex-start; }
.portal-library-tag { border-radius:5px; padding:5px 7px; font-size:.64rem; font-weight:700; color:#bacbdf; background:#23334c; }
.portal-library-tag-ftpsync { color:#8de9df; background:#173e43; }
.portal-library-tag-usenet { color:#ccb5ff; background:#33284e; }
.portal-library-tag-torrent { color:#c3de87; background:#303d25; }
.portal-library-tag-unavailable { font-weight:500; color:#a8b5cb; background:#202c40; }
.portal-library-card-footer { border-top:1px solid #26364e; margin:0 19px; padding:13px 0; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.portal-library-card-footer > span { color:#91a1ba; font-size:.65rem; }
.portal-library-card-details { border:0; padding:3px 0; background:transparent; color:#90e3dd; font-size:.76rem!important; font-weight:650!important; }
.portal-library-card-details::after { content:' →'; }
.portal-library-more { display:flex; justify-content:center; margin:28px 0 0; }
.portal-library-empty, .portal-library-loading { grid-column:1/-1; border:1px dashed #3b4d69; border-radius:14px; background:#111c2d; text-align:center; padding:48px 24px; color:#aebbd1; }
.portal-library-empty h2 { color:#edf4ff; font-size:1.2rem; margin-bottom:12px; }
.portal-library-empty p { max-width:480px; margin:0 auto 24px; line-height:1.6; font-size:.88rem; }
.portal-library-dialog { width:min(820px,calc(100% - 32px)); max-height:calc(100dvh - 40px); margin:auto; border:1px solid #425675; border-radius:17px; padding:0; background:#111e31; color:#e6eefb; box-shadow:0 35px 100px #0009; color-scheme:dark; }
.portal-library-dialog::backdrop { background:#030917c7; backdrop-filter:blur(5px); }
.portal-library-close { position:sticky; top:14px; float:right; margin:14px 16px 0 0; padding:8px 13px; border:1px solid #465b78; border-radius:7px; color:#e6eefb; background:#1e3049; z-index:1; font-size:.78rem!important; }
.portal-library-detail { padding:63px 32px 32px; }
.portal-library-detail-heading { display:grid; grid-template-columns:150px minmax(0,1fr); gap:25px; align-items:center; margin-bottom:26px; }
.portal-library-detail-heading h2 { margin:8px 0 9px; line-height:1.3; font-size:1.65rem; letter-spacing:-.025em; overflow-wrap:anywhere; }
.portal-library-detail-art { position:relative; display:grid; place-items:center; background:#0b1729; border:1px solid #2a3d58; border-radius:10px; width:150px; height:160px; overflow:hidden; }
.portal-library-detail-art img { position:absolute; width:100%; height:100%; object-fit:contain; padding:10px; }
.portal-library-description { color:#acbbd2; font-size:.83rem; line-height:1.6; margin-top:14px; }
.portal-library-detail-section { border-top:1px solid #2a3a53; padding:23px 0 4px; margin-top:18px; }
.portal-library-detail-section h3 { color:#edf4ff; margin:0 0 13px; font-size:1rem; }
.portal-library-detail-section > p, .portal-library-update p, .portal-library-file-list p { color:#adbbd0; font-size:.85rem; line-height:1.65; }
.portal-library-instructions { white-space:pre-line; overflow-wrap:anywhere; }
.portal-library-detail-methods { display:flex; gap:10px; flex-wrap:wrap; }
.portal-library-method { padding:10px 14px; border:1px solid #3e5574; border-radius:8px; background:#21334d; color:#e5edfa; font-size:.78rem!important; font-weight:650!important; }
.portal-library-method-ftpsync { color:#98eee4; background:#193e43; border-color:#3d7476; }
.portal-library-method-usenet { color:#d3c1fa; background:#372d50; border-color:#605078; }
.portal-library-method:hover { filter:brightness(1.18); }
.portal-library-guide-links { display:flex; flex-wrap:wrap; gap:15px; margin-top:15px; }
.portal-library-text-link { color:#8be2da; padding:3px 0; border:0; background:transparent; text-decoration:underline; text-underline-offset:4px; font-size:.8rem!important; }
.portal-library-notice .portal-library-text-link { display:block; margin-top:8px; }
.portal-library-file-list { list-style:none; margin:0; padding:0; }
.portal-library-file-list li { padding:10px 0; }
.portal-library-file-list a { color:#9de5df; font-size:.87rem; overflow-wrap:anywhere; }
.portal-library-update { padding:12px 0; }
.portal-library-update h4 { font-size:.88rem; margin-bottom:5px; }
.portal-library-update-date { font-size:.72rem!important; color:#8f9eb7!important; margin-bottom:7px; }
@media(min-width:1650px) { .portal-library-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1150px) { .portal-library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .portal-library-toolbar { grid-template-columns:repeat(3,minmax(0,1fr)); } .portal-library-search { grid-column:1/-1; } }
@media(max-width:600px) { .portal-library-heading { flex-direction:column; gap:15px; } .portal-library-heading h1 { font-size:1.8rem; } .portal-library-summary { padding:18px; gap:22px; } .portal-library-summary > div { flex-direction:column; align-items:flex-start; gap:4px; flex:1; } .portal-library-summary span { font-size:.69rem; } .portal-library-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .portal-library-search { grid-column:1/-1; } .portal-library-toolbar label:last-child { grid-column:1/-1; } .portal-library-detail { padding:62px 20px 22px; } .portal-library-detail-heading { grid-template-columns:1fr; gap:17px; } .portal-library-detail-art { width:100%; height:180px; } .portal-library-detail-heading h2 { font-size:1.4rem; } .portal-library-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 20px); } }
@media(max-width:440px) { .portal-library-grid { grid-template-columns:minmax(0,1fr); } .portal-library-card-art { height:190px; } .portal-library-card h2 { min-height:0; } }
@media(prefers-reduced-motion:reduce) { .portal-library-card { transition:none; } .portal-library-card:hover { transform:none; } }
