.stack-st { width: 170px; flex: none; }
.stack-btn { flex: none; display: flex; justify-content: flex-end; }
.stack-btn .btn.wide { width: 140px; }
.rmain.plain { text-decoration: none; }
.rmain.plain:hover .rt { text-decoration: underline; text-underline-offset: 3px; }


.svc { border-bottom: 1px solid var(--line); }
.svc .row.dense { border-bottom: 0; min-height: 56px; }
.svc-chev { margin-left: -6px; }
.svc-chev svg { transition: transform var(--dur-fast) var(--ease); }
.svc.open .svc-chev svg { transform: rotate(90deg); }
.svc-open { width: 102px; flex: none; display: flex; justify-content: flex-end; }
.svc-parts { padding: 0 8px 14px 38px; display: flex; flex-direction: column; gap: 4px; }
.svc-parts .row-gap { padding: 3px 0; }
.svc-parts .mono { color: var(--ink-soft); }
.svc-part-st { width: 200px; flex: none; display: flex; }
.svc-part-st .st { font-size: 13px; }

.tool-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.tool { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); color: var(--ink); text-decoration: none; }
.tool:hover { border-color: var(--line-hard); }
.tool-name { display: flex; align-items: center; gap: 10px; }
.tool-name > .ico:last-child { margin-left: auto; }
.svc-ico, .tool-ico { width: 30px; height: 30px; border-radius: 8px; background: var(--paper-2); display: inline-grid; place-items: center; flex: none; color: var(--ink-soft); }
.svc-ico .ico, .tool-ico .ico { width: 17px; height: 17px; }
.tool b { font-size: 15px; }
.tool svg { width: 15px; height: 15px; color: var(--ink-faint); }

.step-st.st { color: var(--ink); font-weight: 600; }
.step-line { display: block; margin-top: 2px; }

@media (max-width: 760px) {
  .tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stack-st, .svc-open { width: auto; }
}
