/* Small, local and namespaced: these components also work in replacement themes.
   Colours read from the theme tokens with hard fallbacks, so the block still
   renders sensibly when the theme does not define them. Keep every token
   reference paired with a fallback for that reason. */
.xinyi-component-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:24px;margin:24px 0}
.xinyi-component-card{padding:24px;border:1px solid var(--line,#dce3e4);border-radius:var(--radius-md,8px);background:var(--paper,#fff);color:var(--ink,#172126);overflow-wrap:anywhere}
.xinyi-component-card a{color:inherit;text-decoration:none}.xinyi-component-card a:hover h3{text-decoration:underline}.xinyi-component-card img{display:block;width:100%;height:180px;object-fit:contain;margin-bottom:16px}.xinyi-component-card h3{font-size:1.2em;margin:0 0 8px}.xinyi-component-card p{margin:8px 0}.xinyi-component-model,.xinyi-component-note{color:var(--muted,#5b6b72);font-size:.9em}
.xinyi-component-categories{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0;margin:20px 0}.xinyi-component-categories li{margin:0}.xinyi-component-categories a{display:inline-block;padding:10px 18px;border:1px solid var(--line,#dce3e4);border-radius:var(--radius-md,8px);color:inherit;text-decoration:none}.xinyi-component-categories a:hover{background:var(--accent-tint,#e6f2f2)}
.xinyi-component-table{overflow-x:auto;margin:20px 0}.xinyi-component-table table{border-collapse:collapse;width:100%;min-width:320px}.xinyi-component-table caption{text-align:left;font-weight:600;padding:0 0 12px}.xinyi-component-table th,.xinyi-component-table td{padding:12px 16px;border:1px solid var(--line,#dce3e4);text-align:left}.xinyi-component-table thead{background:var(--paper-alt,#f4f6f5)}.xinyi-component-documents{padding-left:24px}.xinyi-component-documents li{margin:10px 0}
.xinyi-component-button,.xinyi-component-search button{display:inline-block;background:var(--accent,#145f65);color:#fff;border:0;border-radius:var(--radius-sm,4px);padding:12px 20px;line-height:1.5;text-decoration:none;cursor:pointer}.xinyi-component-button:hover,.xinyi-component-search button:hover{background:var(--accent-dark,#0e474c);color:#fff}.xinyi-component-search label{display:block;font-weight:600;margin-bottom:8px}.xinyi-component-search>div{display:flex;gap:10px;flex-wrap:wrap}.xinyi-component-search input[type=search]{flex:1 1 180px;min-width:0;padding:12px;border:1px solid var(--line,#dce3e4);border-radius:var(--radius-sm,4px);font:inherit}.xinyi-component-empty{padding:16px 0;color:var(--muted,#5b6b72)}
.xinyi-component-button:focus-visible,.xinyi-component-card a:focus-visible,.xinyi-component-categories a:focus-visible,.xinyi-component-documents a:focus-visible,.xinyi-component-search :focus-visible,.xinyi-component-table:focus-visible{outline:3px solid var(--accent,#145f65);outline-offset:3px}
