.sh-fit{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px;display:grid}.sh-fit>div{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);padding:clamp(20px,3vw,28px)}.sh-fit h3{align-items:center;gap:10px;margin:0 0 14px;font-size:1.15rem;display:flex}.sh-fit h3 svg{flex:none;width:22px;height:22px}.sh-fit .yes h3 svg{color:var(--success)}.sh-fit .no h3 svg{color:#d1453b}.sh-fit ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.sh-fit li{color:var(--text);padding-left:20px;font-size:.97rem;position:relative}.sh-fit li:before{content:"";background:var(--line-strong);border-radius:50%;width:8px;height:8px;position:absolute;top:.62em;left:2px}.sh-fit .yes li:before{background:var(--success)}.sh-fit .no li:before{background:#d1453b}.sh-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;display:grid}.sh-card{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);padding:22px}.sh-card .tag{letter-spacing:.06em;text-transform:uppercase;color:var(--brand-600);margin-bottom:10px;font-size:.72rem;font-weight:700;display:inline-block}.sh-card h3{margin:0 0 6px;font-size:1.05rem}.sh-card p{color:var(--muted);margin:0;font-size:.95rem}:root[data-theme=dark] .sh-card .tag{color:#8fb0ff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sh-card .tag{color:#8fb0ff}}.sh-route{gap:12px;max-width:920px;margin-inline:auto;display:grid}.sh-route a{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--text);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 18px;padding:18px 20px;text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .15s;display:grid}.sh-route a:hover{border-color:var(--brand-200);box-shadow:var(--shadow-md);transform:translateY(-2px)}.sh-route q{quotes:"“" "”";color:var(--ink);font-size:1.02rem;font-weight:650}.sh-route small{color:var(--muted);grid-column:1;font-size:.9rem}.sh-route b{color:var(--link);white-space:nowrap;grid-area:1/2/span 2;align-items:center;gap:6px;font-size:.92rem;display:inline-flex}.sh-route b svg{width:16px;height:16px}@media (width<=560px){.sh-route a{grid-template-columns:minmax(0,1fr)}.sh-route b{grid-area:auto/1}}.sh-table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.sh-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.95rem}.sh-table th,.sh-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:14px 16px}.sh-table thead th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);font-size:.78rem}.sh-table tbody tr:last-child>*{border-bottom:0}.sh-table tbody th{color:var(--ink);font-weight:700}.sh-table tbody th small{color:var(--muted);margin-top:2px;font-size:.84rem;font-weight:500;display:block}.sh-table td{color:var(--text)}.sh-good{color:var(--success);white-space:nowrap;font-weight:700}.sh-poor{color:#d1453b;white-space:nowrap;font-weight:700}:root[data-theme=dark] .sh-poor,:root[data-theme=dark] .sh-fit .no h3 svg{color:#f07b72}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sh-poor,:root:not([data-theme=light]) .sh-fit .no h3 svg{color:#f07b72}}.sh-source{color:var(--muted);margin:12px 0 0;font-size:.85rem}.sh-diagram{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);margin:0;padding:clamp(16px,3vw,28px)}.sh-diagram svg{width:100%;height:auto;display:block}.sh-diagram .wide{display:none}@media (width>=760px){.sh-diagram .wide{display:block}.sh-diagram .tall{display:none}}.sh-diagram figcaption{color:var(--muted);text-align:center;margin-top:14px;font-size:.9rem}.sh-dg-box{fill:var(--surface-2);stroke:var(--line-strong);stroke-width:1.5px}.sh-dg-api{fill:var(--brand-50);stroke:var(--brand-300);stroke-width:1.5px}.sh-dg-shop{fill:var(--surface-2);stroke:var(--success);stroke-width:1.5px}.sh-dg-chip{fill:var(--surface);stroke:var(--line);stroke-width:1px}.sh-dg-h{fill:var(--ink);font:700 17px var(--font)}.sh-dg-t{fill:var(--muted);font:500 13px var(--font)}.sh-dg-c{fill:var(--text);font:600 12.5px var(--font)}.sh-dg-line{stroke:var(--primary);stroke-width:2px;fill:none}.sh-dg-head{fill:var(--primary)}:root[data-theme=dark] .sh-dg-api{fill:#4d7cff24;stroke:#8fb0ff80}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sh-dg-api{fill:#4d7cff24;stroke:#8fb0ff80}}.sh-checks{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.sh-checks li{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.sh-checks svg{width:20px;height:20px;color:var(--success);flex:none;margin-top:2px}.sh-checks strong{color:var(--ink);margin-bottom:2px;display:block}.sh-checks span{color:var(--muted);font-size:.94rem}.sh-tools{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px;display:grid}.sh-tools>div{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);padding:20px}.sh-tools h3{margin:0 0 6px;font-size:1.02rem}.sh-tools p{color:var(--muted);margin:0 0 12px;font-size:.93rem}.sh-tools ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sh-tools li{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:999px;padding:4px 10px;font-size:.82rem}.sh-foot{text-align:center;max-width:70ch;color:var(--muted);margin:22px auto 0;font-size:.92rem}.sh-sub{text-align:center;max-width:720px;margin:clamp(36px,5vw,56px) auto 20px}.sh-sub h3{margin:0 0 6px;font-size:clamp(1.3rem,2.4vw,1.6rem)}.sh-sub p{color:var(--muted);margin:0}@media (width<=640px){.sh-table-wrap{background:0 0;border:0;overflow:visible}.sh-table{min-width:0;display:block}.sh-table thead{display:none}.sh-table tbody{gap:12px;display:grid}.sh-table tr{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px 16px;display:block}.sh-table th,.sh-table td{border:0;padding:4px 0;display:block}.sh-table tbody th{padding-bottom:8px;font-size:1.02rem}.sh-table td[data-label]:before{content:attr(data-label) ": ";color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-right:4px;font-size:.78rem;font-weight:600}}
