/* Catalogue presentation. Identity, type, artwork and theme tokens come from
   landing-page.css; every rule here is limited to the library page. */
.page-library [hidden] { display:none!important; }
.page-library .library-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:36px; padding:76px 0 46px; }
.page-library .library-intro .eyebrow { margin-bottom:22px; }
.page-library h1 { font-size:clamp(48px,5.2vw,72px); line-height:1.1; letter-spacing:-3px; }
.page-library h1 em { letter-spacing:-3px; }
.page-library .library-intro-note { padding-bottom:6px; max-width:430px; }
.page-library .library-intro-note>p { color:var(--muted); font-size:13px; line-height:1.9; }
.page-library .library-access { display:block; margin-top:22px; font-size:10px; color:var(--muted); }
.page-library .desktop-nav a[aria-current=page] { color:var(--violet); }
.page-library .desktop-nav a[aria-current=page]::after { content:''; position:absolute; inset:auto 0 0; height:2px; border-radius:2px; background:var(--violet); }
.page-library #mobile-nav a[aria-current=page] { color:var(--violet); }
.page-library .nav-shell { flex-wrap:nowrap; }
.page-library .brand { min-height:44px; }
.page-library .desktop-nav a { display:inline-flex; align-items:center; min-height:44px; }
.page-library :is(.sign-link,.back-top) { display:inline-flex; align-items:center; min-height:44px; }
.page-library .icon-button { width:44px; height:44px; flex-shrink:0; }
.page-library .library-filters { margin-bottom:24px; }
.page-library .library-search { display:flex; align-items:center; gap:14px; min-height:62px; padding:7px 8px 7px 20px; margin-bottom:22px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--muted); transition:border-color .2s; }
.page-library .library-search:focus-within { outline:2px solid var(--violet); outline-offset:3px; }
.page-library .library-search input { appearance:none; -webkit-appearance:none; min-width:0; flex:1; padding:10px 0; border:0; outline:none; background:transparent; color:var(--ink); font-size:13px; }
.page-library .library-search input::placeholder { color:var(--muted); opacity:1; }
.page-library .library-search input::-webkit-search-cancel-button { -webkit-appearance:none; }
.page-library .search-clear { display:grid; place-items:center; flex:0 0 44px; width:44px; min-height:44px; border:0; border-radius:50%; background:transparent; color:var(--ink); }
.page-library .search-clear:hover { background:var(--pale); }
.page-library .library-categories { display:flex; flex-wrap:wrap; gap:8px; min-width:0; padding:0; border:0; margin:0 0 22px; }
.page-library .library-categories button { min-height:44px; max-width:100%; padding:10px 18px; border:1px solid var(--line); border-radius:24px; background:var(--bg); color:var(--muted); font-size:11px; transition:color .2s,background-color .2s,border-color .2s; }
.page-library .library-categories button:hover { border-color:var(--violet); color:var(--violet); }
.page-library .library-categories button[aria-pressed=true] { background:var(--ink); border-color:var(--ink); color:var(--bg); }
.page-library .library-filter-meta { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 20px; padding-top:10px; border-top:1px solid var(--line); font-size:11px; color:var(--muted); }
.page-library #library-count { min-height:22px; }
.page-library .library-filter-options { display:flex; align-items:center; flex-wrap:wrap; gap:4px 20px; }
.page-library .library-availability { display:flex; align-items:center; gap:10px; min-height:44px; cursor:pointer; }
.page-library .library-availability input { width:17px; height:17px; flex-shrink:0; margin:0; accent-color:var(--violet); cursor:pointer; }
.page-library .library-availability input:focus-visible { outline:2px solid var(--violet); outline-offset:4px; }
.page-library .library-reset { border:0; padding:10px 0; min-height:44px; background:transparent; color:var(--ink); text-decoration:underline; text-underline-offset:4px; font-size:11px; }
.page-library .lib-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.page-library .lib-item { min-width:0; display:flex; flex-direction:column; align-items:stretch; position:relative; padding:25px; border:1px solid var(--line); border-radius:16px; background:var(--surface); color:var(--ink); transition:border-color .25s,transform .25s,box-shadow .25s; }
.page-library a.lib-item:hover { border-color:color-mix(in srgb,var(--violet) 50%,var(--line)); transform:translateY(-4px); box-shadow:var(--shadow); }
.page-library .lib-item[data-calculator=cable-sizing] { background:#f0edf7; }
[data-theme=night] .page-library .lib-item[data-calculator=cable-sizing] { background:#30283d; }
.page-library .lib-card-top { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:6px 14px; }
.page-library :is(.lib-no,.lib-category) { font:400 9px/1.6 var(--mono); color:var(--muted); letter-spacing:.7px; }
.page-library .lib-art { height:160px; margin:10px 0 18px; display:grid; place-items:center; pointer-events:none; }
.page-library .lib-art>[data-calculator-art] { width:100%; height:150px; margin:0; }
.page-library .lib-art .cable-outer { width:125px; height:125px; left:calc(50% - 62px); }
.page-library .lib-art .conductor { width:36px; height:36px; border-width:6px; }
.page-library .lib-art .cable-inner { inset:9px; }
.page-library .lib-art .dimension { font-size:6px; bottom:-2px; }
.page-library .lib-art .crosshair { left:13%; }
.page-library .lib-art .tool-symbol { font-size:68px; }
.page-library .lib-art .tool-symbol span { font-size:48px; }
.page-library .lib-art .bar-art { gap:10px; padding:28px 12px 22px; }
.page-library .lib-art .bar-art i { width:22px; }
.page-library .lib-art .small-tool-symbol { font-size:72px; }
.page-library .lib-art .motor-symbol { font-size:48px; }
.page-library .lib-art .motor-symbol::before { width:74px; height:74px; }
.page-library .lib-art .motor-symbol span { bottom:12px; font-size:10px; }
.page-library .lib-art .curve-art { display:grid; place-items:center; }
.page-library .lib-art .curve-art svg { width:150px; height:110px; }
.page-library .library-line-art { display:grid; place-items:center; color:var(--violet); }
.page-library .library-line-art svg { width:180px; height:150px; stroke-width:2; }
.page-library .library-line-art .art-axis { stroke:var(--muted); stroke-width:1; }
.page-library .lib-item[data-calculator=earthing-grid] .library-line-art { color:#78916f; }
.page-library .lib-item[data-calculator=power-factor] .library-line-art { color:#7589a4; }
.page-library .lib-item[data-calculator=ups-sizing] .library-line-art { color:#b8876e; }
.page-library .library-symbol-art { display:grid; place-items:center; color:var(--muted); font:48px Lora,serif; }
.page-library .lib-name { font-size:21px; font-weight:500; line-height:1.3; letter-spacing:-.7px; margin:0 0 10px; }
.page-library .lib-desc { font-size:12px; line-height:1.8; color:var(--muted); margin-bottom:24px; }
.page-library .lib-note { font-size:10px; line-height:1.8; color:var(--muted); margin:-8px 0 24px; }
.page-library .lib-foot { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; padding-top:15px; border-top:1px solid var(--line); min-height:42px; }
.page-library .lib-std { font:400 9px/1.7 var(--mono); color:var(--muted); }
.page-library .lib-soon,.page-library .lib-kind { border:1px solid var(--line); border-radius:999px; padding:4px 8px; font-size:9px; color:var(--muted); }
.page-library .lib-item--soon { background:var(--bg); border-style:dashed; }
.page-library .library-empty { text-align:center; padding:64px 24px; background:var(--surface); border:1px solid var(--line); border-radius:16px; }
.page-library .empty-symbol { display:block; margin-bottom:18px; color:var(--violet); font:42px Lora,serif; }
.page-library .library-empty h2 { font-size:28px; letter-spacing:-1px; margin-bottom:12px; }
.page-library .library-empty p { color:var(--muted); font-size:13px; margin-bottom:25px; }
.page-library .library-endnote { padding:38px 0 50px; color:var(--muted); font-size:10px; line-height:1.9; border-bottom:1px solid var(--line); }
.page-library .library-catalogue-count { margin-top:6px; }
.page-library .library-endnote .text-link { margin-top:18px; font-size:11px; color:var(--ink); }
.page-library .site-footer { padding-top:42px; }
@media(max-width:1100px) { .page-library .library-intro { gap:24px; } .page-library .lib-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px) { .page-library .desktop-nav { display:none; } .page-library .menu-toggle { display:flex; flex-direction:column; gap:5px; } .page-library .menu-toggle>span { width:18px; height:1px; background:currentColor; } .page-library #mobile-nav:not([hidden]) { display:grid; padding:12px 24px 25px; background:var(--bg); border-bottom:1px solid var(--line); } .page-library #mobile-nav a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:15px 0; border-bottom:1px solid var(--line); } .page-library #mobile-nav a span { font:9px var(--mono); color:var(--muted); } }
@media(max-width:650px) {
 .page-library .library-intro { display:block; padding:48px 0 32px; }
 .page-library .library-intro .eyebrow { font-size:9px; margin-bottom:20px; }
 .page-library h1,.page-library h1 em { font-size:clamp(44px,11vw,60px); letter-spacing:-2px; }
 .page-library .library-intro-note { margin-top:24px; padding:0; }
 .page-library .library-intro-note>p { font-size:12px; }
 .page-library .library-access { margin-top:15px; font-size:9px; }
 .page-library .library-search { min-height:58px; padding-left:16px; gap:10px; margin-bottom:18px; }
 .page-library .library-search input { font-size:16px; }
 .page-library .library-categories { gap:7px; margin-bottom:18px; }
 .page-library .library-categories button { font-size:10px; padding:10px 13px; }
 .page-library .library-filter-meta { align-items:flex-start; gap:0; }
 .page-library #library-count { width:100%; padding:6px 0; }
 .page-library .library-filter-options { width:100%; justify-content:space-between; gap:4px 12px; }
 .page-library .lib-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
 .page-library .lib-item { padding:24px; }
 .page-library .lib-art { height:145px; margin:8px 0 22px; }
 .page-library .lib-name { font-size:21px; }
 .page-library .lib-desc { font-size:12px; }
 .page-library .library-empty { padding:40px 20px; }
 .page-library .library-endnote { padding-bottom:30px; }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .page-library a.lib-item:hover .cable-outer { transform:rotate(0); } }
@media(hover:none) { .page-library a.lib-item:hover { transform:none; box-shadow:none; } }
@media(prefers-reduced-motion:reduce) { .page-library *, .page-library *::before, .page-library *::after { animation:none!important; transition:none!important; } .page-library a.lib-item:hover { transform:none; } }
@media(prefers-reduced-transparency:reduce) { .page-library .site-header { background:var(--bg); backdrop-filter:none; } }
@media(forced-colors:active) { .page-library :is(.library-search,.lib-item,.library-categories button) { border-color:CanvasText; } .page-library .library-categories button[aria-pressed=true] { outline:2px solid Highlight; outline-offset:2px; } }
@media print { .page-library :is(.site-header,.library-filters,.site-footer) { display:none; } .page-library .lib-item { break-inside:avoid; border-color:#aaa; } }
