.set-grid { align-items: start; }
.set-card { gap: 16px; }
.set-skeleton { height: 420px; border-radius: var(--r-card); }

.set-preset-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 10px; }
.set-preset {
  display: flex; flex-direction: column; gap: 8px; padding: 8px; border: 1px solid var(--stroke); border-radius: 12px;
  background: var(--bg3); color: var(--text-2); font: inherit; font-size: 12px; text-align: left; cursor: pointer;
  transition: border-color .15s var(--ease-color), transform .2s var(--ease-pill);
}
.set-preset:hover { border-color: var(--stroke2); color: var(--text); }
.set-preset:active { transform: scale(.97); }
.set-preset[aria-pressed="true"] { border-color: var(--accent); color: var(--text); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
.set-preset-art { display: flex; align-items: flex-end; justify-content: flex-end; height: 54px; padding: 8px 0 0 14px; border: 1px solid; border-radius: 8px; overflow: hidden; }
.set-preset-panel { display: flex; flex-direction: column; gap: 4px; width: 100%; height: 100%; padding: 7px; border: 1px solid; border-right: 0; border-bottom: 0; border-radius: 6px 0 0 0; }
.set-preset-panel i { width: 26px; height: 6px; border-radius: 3px; }
.set-preset-panel b { width: 60%; height: 4px; border-radius: 2px; }
.set-preset-name { font-weight: 500; }

.set-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.set-label { display: flex; flex-direction: column; gap: 2px; font-size: 13px; font-weight: 500; color: var(--text); }
.set-control { display: flex; align-items: center; gap: 8px; }

.set-color { display: inline-flex; align-items: center; gap: 8px; }
.set-color input[type="color"] { width: 32px; height: 32px; padding: 0; border: 1px solid var(--stroke2); border-radius: 8px; background: none; cursor: pointer; flex: none; }
.set-color input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
.set-color input[type="color"]::-webkit-color-swatch { border: 0; border-radius: 7px; }
.set-color input[type="color"]::-moz-color-swatch { border: 0; border-radius: 7px; }
.set-hex { width: 92px; height: 32px; font-size: 12px; text-transform: lowercase; }

.set-collapse {
  display: flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; color: var(--text-2);
  font: inherit; font-size: 13px; font-weight: 500; cursor: pointer;
}
.set-collapse:hover { color: var(--text); }
.set-collapse svg { transform: rotate(-90deg); transition: transform .2s var(--ease-snap); }
.set-collapse[aria-expanded="true"] svg { transform: none; }
.set-ov-list { display: flex; flex-direction: column; gap: 6px; padding: 10px; border: 1px solid var(--stroke); border-radius: 12px; background: var(--input-bg); max-height: 360px; overflow-y: auto; }
.set-ov-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; }

.set-slider { display: inline-flex; align-items: center; gap: 10px; }
.set-slider input { width: 160px; accent-color: var(--accent); }
.set-slider span { min-width: 40px; text-align: right; font-size: 13px; color: var(--text-2); }

.set-share { display: flex; flex-direction: column; gap: 10px; padding-top: 14px; border-top: 1px solid var(--stroke); }
.set-share-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.set-share-head .btn { gap: 6px; }
.set-share textarea {
  width: 100%; padding: 10px 12px; border: 1px solid var(--stroke2); border-radius: 12px; background: var(--input-bg);
  color: var(--text); font-variant-numeric: tabular-nums; font-size: 12px; resize: none;
}
.set-share textarea:focus { outline: none; border-color: var(--accent); }

.set-push-state { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.set-ios {
  display: flex; gap: 10px; align-items: flex-start; padding: 12px; border-radius: 12px; font-size: 13px; line-height: 1.45; color: var(--text-2);
  background: color-mix(in srgb, var(--info) 12%, transparent); border: 1px solid color-mix(in srgb, var(--info) 30%, transparent);
}
.set-ios svg { flex: none; margin-top: 2px; color: var(--info); }
.set-push-kinds { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }

@media (max-width: 900px) {
  .set-grid > .span-7, .set-grid > .span-5 { grid-column: span 12; }
}
@media (max-width: 520px) {
  .set-row { align-items: flex-start; flex-direction: column; gap: 8px; }
  .set-slider input { width: 100%; }
}
