/* All selectors are confined to the two shortcode roots, not the theme or AI page. */
.ssh-hub { --ssh-ink:#17392e; --ssh-accent:#176249; --ssh-line:#cddbd2; color:#203c32; line-height:1.65; font-size:16px; overflow-wrap:anywhere; }
.ssh-hub *, .ssh-hub *::before, .ssh-hub *::after { box-sizing:border-box; }
.ssh-hub [hidden] { display:none !important; }
.ssh-hub a { color:#155b43; text-underline-offset:3px; }
.ssh-hub :is(a,button,input,select,summary):focus-visible { outline:3px solid #986a13; outline-offset:3px; }
.ssh-hub :is(h2,h3) { color:var(--ssh-ink); line-height:1.35; }
.ssh-hub h2 { font-size:clamp(1.45rem,3vw,2rem); margin:16px 0; }
.ssh-hub h3 { font-size:1.2rem; margin:12px 0; }
.ssh-hub .ssh-eyebrow { font-size:.78rem; letter-spacing:.1em; font-weight:700; color:#365d4b; margin:30px 0 8px; }
.ssh-hub p { margin:0 0 14px; }
.ssh-hub .ssh-notice { border-left:4px solid #ac7c24; background:#fff7e7; padding:18px; margin:24px 0; border-radius:0 12px 12px 0; }
.ssh-hub .ssh-notice p { margin:10px 0 0; }
.ssh-hub .ssh-age { font-weight:700; }
.ssh-hub .ssh-counts { padding:12px 0; border-bottom:1px solid var(--ssh-line); font-weight:700; }
.ssh-hub .ssh-services { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.ssh-hub .ssh-service { padding:24px; border:1px solid var(--ssh-line); background:#f5f9f5; border-radius:16px; }
.ssh-hub .ssh-link { font-weight:700; display:inline-block; padding:8px 0; }
.ssh-hub .ssh-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding:20px; border:1px solid var(--ssh-line); border-radius:12px; background:#f6f9f6; margin:20px 0; align-items:end; }
.ssh-hub .ssh-filters label { display:flex; flex-direction:column; gap:6px; font-weight:600; font-size:.9rem; min-width:0; }
.ssh-hub .ssh-filters label:first-child { grid-column:1/-1; }
.ssh-hub :is(input,select) { width:100%; min-width:0; max-width:100%; font-size:16px; padding:10px; border:1px solid #849f91; border-radius:6px; background:#fff; color:#203c32; min-height:46px; }
.ssh-hub button { border:0; border-radius:6px; min-height:46px; background:var(--ssh-accent); color:white; padding:10px 20px; font-weight:700; cursor:pointer; }
.ssh-hub .ssh-reset { display:inline-flex; align-items:center; min-height:46px; }
.ssh-hub .ssh-result-count { font-weight:700; }
.ssh-hub .ssh-items { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
.ssh-hub .ssh-item { min-width:0; border:1px solid var(--ssh-line); border-radius:12px; padding:20px; background:#fff; }
.ssh-hub .ssh-badges { display:flex; gap:8px; flex-wrap:wrap; align-items:center; font-size:.8rem; }
.ssh-hub .ssh-tag { border:1px solid #a5c6b1; border-radius:20px; padding:3px 10px; background:#eaf4ed; color:#234e39; font-weight:700; }
.ssh-hub .ssh-period { color:#4d564e; }
.ssh-hub .ssh-period[data-period="ended"] { color:#963414; font-weight:700; }
.ssh-hub .ssh-price { font-size:1.5rem; font-weight:750; margin:14px 0; }
.ssh-hub .ssh-price small { font-size:.8rem; font-weight:400; display:inline-block; }
.ssh-hub .ssh-variant { color:#4d6156; font-size:.9rem; }
.ssh-hub details { border-top:1px solid var(--ssh-line); padding-top:10px; }
.ssh-hub summary { cursor:pointer; font-weight:650; min-height:44px; padding:8px 0; }
.ssh-hub details p, .ssh-hub details li { font-size:.9rem; }
.ssh-hub details ul { margin:0 0 16px 20px; padding:0; }
.ssh-hub details li { margin-bottom:12px; }
.ssh-hub pre { white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; max-width:100%; font-size:.8rem; padding:12px; background:#f3f6f3; }
.ssh-hub .ssh-sources { margin-top:28px; }
@media (max-width:767px) {
  .ssh-hub .ssh-items, .ssh-hub .ssh-services { grid-template-columns:1fr; }
  .ssh-hub .ssh-filters { grid-template-columns:1fr; padding:14px; }
  .ssh-hub .ssh-item, .ssh-hub .ssh-service { padding:16px; }
  .ssh-hub .ssh-notice { padding:14px; }
}
