/* ===================================================================
   RAYPCB Tools - RF engine styles + unified hub
   =================================================================== */
.pcbs-tool{--pc-ink:#0d2340;--pc-body:#42556e;--pc-muted:#71839b;--pc-line:#e2e8f0;
--pc-line2:#eef2f7;--pc-soft:#f5f8fc;--pc-soft2:#eef4fa;--pc-blue:#1273c9;--pc-blued:#0d5aa3;
--pc-cyan:#00a6dd;--pc-or:#ff6a13;--pc-ord:#e05c0c;--pc-ok:#12a05c;--pc-warn:#c47f17;--pc-bad:#d64545;
--pc-r:12px;--pc-sh:0 1px 2px rgba(13,35,64,.06),0 8px 24px rgba(13,35,64,.07);
box-sizing:border-box;color:var(--pc-body);max-width:1120px;margin:0 auto;
font:400 15px/1.6 Inter,-apple-system,"Segoe UI",Roboto,Arial,"Microsoft Yahei",sans-serif}
.pcbs-tool *,.pcbs-tool *::before,.pcbs-tool *::after{box-sizing:border-box}
.pcbs-hubwrap{max-width:1240px}
.pcbs-boot{padding:26px;color:var(--pc-muted);font-size:14px}
.pcbs-err{padding:16px;border:1px solid var(--pc-bad);border-radius:9px;color:var(--pc-bad)}
.pcbs-note{padding:16px 18px;border:1px dashed var(--pc-line);border-radius:10px;background:var(--pc-soft);color:var(--pc-muted);font-size:13.5px}
.pcbs-tool h2,.pcbs-tool h3,.pcbs-tool h4{margin:0;color:var(--pc-ink);font-weight:800;line-height:1.22;letter-spacing:-.015em}
.pcbs-tool p{margin:0 0 1em}
.pcbs-tool a{color:var(--pc-blue);text-decoration:none}
.pcbs-tool a:hover{color:var(--pc-or)}
.pcbs-tool table{border-collapse:collapse;width:100%}
.pcbs-tool svg{display:block;max-width:100%}

.pcbs-head{text-align:center;margin:0 0 16px}
.pcbs-head h2{font-size:25px;background:linear-gradient(90deg,#12a3e0,#1273c9 55%,#0d5aa3);
-webkit-background-clip:text;background-clip:text;color:transparent}
.pcbs-head p{margin:7px 0 0;color:var(--pc-muted);font-size:14px}

.pcbs-grid{display:grid;grid-template-columns:1fr 400px;gap:18px;align-items:start}
@media(max-width:900px){.pcbs-grid{grid-template-columns:1fr}}
.pcbs-card{background:#fff;border:1px solid var(--pc-line);border-radius:var(--pc-r);box-shadow:var(--pc-sh);padding:20px}
.pcbs-card+.pcbs-card{margin-top:16px}
.pcbs-right{position:sticky;top:16px}
@media(max-width:900px){.pcbs-right{position:static}}

.pcbs-sect{display:flex;align-items:center;gap:9px;margin:20px 0 12px;font-size:12px;font-weight:800;
letter-spacing:.9px;text-transform:uppercase;color:var(--pc-blued)}
.pcbs-sect:first-child{margin-top:0}
.pcbs-sect::before{content:"";width:4px;height:14px;border-radius:3px;background:var(--pc-blue)}

.pcbs-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px 16px}
.pcbs-fields.one{grid-template-columns:1fr}
.pcbs-fields.three{grid-template-columns:1fr 1fr 1fr}
@media(max-width:560px){.pcbs-fields,.pcbs-fields.three{grid-template-columns:1fr}}
.pcbs-f label{display:block;font-size:12.5px;font-weight:600;color:var(--pc-ink);margin-bottom:6px}
.pcbs-f .hint{font-size:11.5px;color:var(--pc-muted);margin-top:5px}
.pcbs-in,.pcbs-sel{width:100%;height:40px;padding:0 12px;border:1px solid #d9e2ed;border-radius:9px;
font:inherit;font-size:14px;color:var(--pc-ink);background:#fcfdff;outline:none;transition:.15s;appearance:none}
select.pcbs-sel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371839b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.pcbs-in:focus,.pcbs-sel:focus{border-color:var(--pc-or);box-shadow:0 0 0 3px rgba(255,106,19,.13)}
.pcbs-sfx{position:relative}
.pcbs-sfx .u{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--pc-muted);font-size:11.5px;pointer-events:none}
.pcbs-sfx .pcbs-in{padding-right:46px}

.pcbs-out{background:var(--pc-soft2);border:1px solid var(--pc-line);border-radius:var(--pc-r);padding:18px}
.pcbs-out h4{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--pc-blued);margin-bottom:12px}
.pcbs-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px}
.pcbs-kpi{background:#fff;border:1px solid var(--pc-line);border-radius:10px;padding:12px 10px;text-align:center}
.pcbs-kpi .v{font-size:20px;font-weight:800;color:var(--pc-blued);line-height:1.15;word-break:break-word}
.pcbs-kpi .v small{font-size:12px;font-weight:600;color:var(--pc-muted)}
.pcbs-kpi .k{font-size:11px;color:var(--pc-muted);margin-top:4px}
.pcbs-rows{margin-top:12px}
.pcbs-rows .r{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--pc-line);font-size:13.5px}
.pcbs-rows .r:last-child{border-bottom:0}
.pcbs-rows .r .k{color:var(--pc-muted)}
.pcbs-rows .r .v{font-weight:700;text-align:right}
.pcbs-flag{display:block;font-size:12.5px;font-weight:700;padding:8px 12px;border-radius:9px;margin-top:12px;line-height:1.45}
.pcbs-flag.ok{background:#e6f6ee;color:var(--pc-ok)}
.pcbs-flag.warn{background:#fdf3e0;color:var(--pc-warn)}
.pcbs-flag.bad{background:#fbe7e7;color:var(--pc-bad)}
.pcbs-flag.info{background:#eaf3fc;color:var(--pc-blued)}

.pcbs-viz{background:#fff;border:1px solid var(--pc-line);border-radius:var(--pc-r);padding:12px;margin-top:14px;overflow:hidden}
.pcbs-viz figcaption{font-size:12px;color:var(--pc-muted);margin-top:9px;padding:0 3px;line-height:1.55}
.pcbs-chart .grid{stroke:#e8eef5;stroke-width:1}
.pcbs-chart .axis{stroke:#c6d2df;stroke-width:1}
.pcbs-chart .lbl{fill:#8fa2b8;font-size:9.5px}
.pcbs-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--pc-muted);margin-top:8px;padding:0 3px}
.pcbs-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}

.pcbs-tw{overflow-x:auto;border:1px solid var(--pc-line);border-radius:var(--pc-r);margin-top:14px}
table.pcbs-t{font-size:13px;min-width:480px}
table.pcbs-t th,table.pcbs-t td{padding:9px 11px;text-align:left;border-bottom:1px solid var(--pc-line2)}
table.pcbs-t thead th{background:var(--pc-soft2);color:var(--pc-blued);font-weight:700;white-space:nowrap}
table.pcbs-t tbody tr:hover{background:var(--pc-soft)}
table.pcbs-t td.num{text-align:right;font-variant-numeric:tabular-nums}
table.pcbs-t tr:last-child td{border-bottom:0}
table.pcbs-t tr.best{background:#e9f7f0}

.pcbs-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 18px;border:0;
border-radius:9px;font-weight:700;font-size:14px;cursor:pointer;text-decoration:none;transition:.16s}
.pcbs-btn.pri{background:var(--pc-or);color:#fff;box-shadow:0 6px 16px rgba(255,106,19,.24)}
.pcbs-btn.pri:hover{background:var(--pc-ord);color:#fff;transform:translateY(-1px)}
.pcbs-btn.gh{background:#fff;color:var(--pc-ink);border:1px solid #cdd8e6}
.pcbs-btn.gh:hover{border-color:var(--pc-or);color:var(--pc-or)}
.pcbs-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}

.pcbs-cta{margin-top:14px;background:linear-gradient(120deg,#fff5ee,#fffaf6);border:1px solid #ffd9be;border-radius:11px;padding:15px 16px}
.pcbs-cta h4{font-size:15px;margin-bottom:5px;text-transform:none;letter-spacing:0;color:var(--pc-ink)}
.pcbs-cta p{margin:0 0 10px;font-size:13px;color:var(--pc-body)}
.pcbs-foot{font-size:11.5px;color:var(--pc-muted);margin-top:12px;line-height:1.6}

/* ---------- unified hub ---------- */
.pcbs-hubtools{display:flex;gap:12px;align-items:center;margin:0 0 16px;flex-wrap:wrap}
.pcbs-hubsearch{max-width:360px;height:42px}
.pcbs-hubcount{font-size:12.5px;font-weight:700;color:var(--pc-blued);background:var(--pc-soft2);
border:1px solid var(--pc-line);border-radius:99px;padding:7px 14px;white-space:nowrap}
.pcbs-hub{display:grid;gap:12px}
.pcbs-hub.cols-2{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.pcbs-hub.cols-3{grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}
.pcbs-hub.cols-4{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.pcbs-hub .g{grid-column:1/-1;font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;
color:var(--pc-blued);margin-top:12px;padding-bottom:6px;border-bottom:2px solid var(--pc-line)}
.pcbs-hub .g:first-child{margin-top:0}
.pcbs-hub .g.hide,.pcbs-hc.hide{display:none}
.pcbs-hc{position:relative;border:1px solid var(--pc-line);border-radius:var(--pc-r);padding:15px 15px 14px;
background:#fff;box-shadow:var(--pc-sh);transition:.15s}
.pcbs-hc:hover{border-color:var(--pc-blue);transform:translateY(-2px)}
.pcbs-hc .t{font-weight:700;font-size:14px;margin-bottom:9px;color:var(--pc-ink);padding-right:42px;line-height:1.35}
.pcbs-hc code{display:block;font-size:11px;background:var(--pc-soft2);color:var(--pc-blued);
padding:6px 8px;border-radius:6px;word-break:break-all;cursor:pointer;transition:.15s;line-height:1.4}
.pcbs-hc code:hover{background:#fff2e9;color:var(--pc-ord)}
.pcbs-hc code.copied{background:#e6f6ee;color:var(--pc-ok)}
.pcbs-badge{position:absolute;top:13px;right:13px;font-size:9.5px;font-weight:800;letter-spacing:.05em;
color:#fff;padding:2px 7px;border-radius:99px}
.pcbs-badge.rf{background:var(--pc-blue)}
.pcbs-badge.pcb{background:#5b6b7b}