/* ============================================================
   BLUE STAR — Technical Library styles (scoped, standalone)
   Loaded only by tech-library.html / tech-library-en.html.
   Relies on design tokens defined in bluestar.css (loaded first).
   ============================================================ */
.spec-intro{padding-bottom:10px;}
.spec-intro .overview-lede{margin-bottom:26px;}

/* toolbar: search + category chips */
.spec-tools{max-width:920px;margin:0 auto;display:flex;flex-direction:column;gap:16px;align-items:center;}
.spec-search{position:relative;width:100%;max-width:560px;}
.spec-search-ic{position:absolute;inset-inline-start:16px;top:50%;transform:translateY(-50%);color:var(--blue);display:inline-flex;pointer-events:none;}
.spec-search input{width:100%;font-family:inherit;font-size:15.5px;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:13px 20px 13px 46px;transition:border-color .18s ease,box-shadow .18s ease;}
[dir="rtl"] .spec-search input{padding:13px 46px 13px 20px;}
.spec-search input::placeholder{color:var(--text-2);opacity:.8;}
.spec-search input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft);}
.spec-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
.spec-chip{font-family:'Inter',sans-serif;font-size:13.5px;font-weight:600;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:8px 18px;cursor:pointer;transition:all .16s ease;}
.spec-chip:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft);}
.spec-chip.is-on{background:var(--navy);color:#fff;border-color:var(--navy);}
.spec-count{text-align:center;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--text-2);margin:18px auto 0;}

/* group sections — tighter rhythm than full .section */
.spec-group{padding:30px 0!important;}
.spec-group .section-h2{margin-bottom:6px;}

/* spec card */
.spec-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 22px 20px;box-shadow:var(--shadow-sm,0 1px 3px rgba(7,27,65,.06));position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.spec-card::after{content:"";position:absolute;top:0;inset-inline-start:0;width:100%;height:3px;background:linear-gradient(90deg,var(--blue),var(--blue-dark));transform:scaleX(0);transform-origin:inline-start;transition:transform .3s ease;}
.spec-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md,0 14px 36px rgba(7,27,65,.12));border-color:var(--blue-line);}
.spec-card:hover::after{transform:scaleX(1);}
.spec-card-top{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.spec-ic{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:var(--blue-soft);color:var(--blue);flex-shrink:0;transition:background .2s ease,color .2s ease;}
.spec-card:hover .spec-ic{background:var(--blue);color:#fff;}
.spec-card .tag{font-family:'Inter',sans-serif;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);}
.spec-card h3{font-size:17px;line-height:1.35;color:var(--navy);margin:0 0 8px;}
.spec-code{font-family:'Inter',sans-serif;font-size:12.5px;color:var(--navy);font-weight:700;letter-spacing:.02em;margin:0 0 16px;}
.spec-code span{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);background:var(--bg-2);border-radius:5px;padding:2px 7px;margin-inline-end:6px;}
.spec-dl{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:14px;font-weight:700;color:var(--blue);background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:999px;padding:11px 18px;transition:background .16s ease,color .16s ease,transform .16s ease;}
.spec-dl:hover{background:var(--blue);color:#fff;border-color:var(--blue);transform:translateY(-1px);}
.spec-dl svg{flex-shrink:0;}

/* search/filter state */
.spec-card.is-hidden,.spec-group.is-hidden{display:none!important;}
.spec-empty{text-align:center;font-size:16px;color:var(--text-2);max-width:var(--maxw);margin:0 auto;padding:40px 28px 60px;}
