.sim-caption{margin: 0;padding: 14px 16px;font-size: 16px;font-weight: 600;line-height: 1.45;color: var(--ink);background: #fff;border: 1px solid var(--line);border-radius: 10px;min-height: 56px;display: flex;align-items: center;transition: background-color 200ms ease-out, border-color 200ms ease-out}.sim-caption[data-tone=alarm]{color: #7a1d28;background: #fdecee;border-color: #f2b8bf}.sim-caption[data-tone=ok]{color: #145c40;background: #e5f5ec;border-color: #b9e2cc}.sim-caption[data-tone=warn]{color: var(--warn-tx);background: var(--warn-bg);border-color: #f0d39a}.sim-caption[data-tone=error]{color: #9b2231;background: #fbe4e7;border-color: #f2b8bf}.sim-card{background: #fff;border: 1px solid var(--line);border-radius: 10px;overflow: hidden}.sim-toolbar{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 8px 16px;padding: 10px 12px;border-bottom: 1px solid var(--line)}.sim-add{display: flex;flex-wrap: wrap;align-items: center;gap: 8px}.sim-add > span{font-size: 12px;font-weight: 600;color: var(--mu)}.sim-add .app-btn{min-height: 34px;padding: 0 10px}.sim-size{display: flex;align-items: center;gap: 10px;font-size: 13px;font-weight: 600}.sim-size input[type=range]{width: 160px;min-height: 24px;accent-color: var(--leak)}.sim-size output{min-width: 46px;font-weight: 500;color: var(--mu);font-variant-numeric: tabular-nums}.sim-size.is-off{opacity: 0.5}.sim-stage{position: relative;height: 300px;background: #0b1f33;--pad: 72px;--pipe-y: 168px;touch-action: pan-y}.sim-stage canvas{position: absolute;inset: 0;width: 100%;height: 100%}.sim-track{position: absolute;top: 0;bottom: 0;left: var(--pad);right: var(--pad);pointer-events: none}.mk{position: absolute;left: calc(var(--p) * 100%);top: var(--y);width: 30px;height: 30px;margin: -15px 0 0 -15px;padding: 0;display: flex;align-items: center;justify-content: center;color: #fff;background: transparent;border: 0;border-radius: 50%;cursor: grab;pointer-events: auto;touch-action: none}.mk::before{content: '';position: absolute;inset: -8px}.mk svg{width: 22px;height: 22px;filter: drop-shadow(0 1px 2px rgb(0 0 0 / 55%))}.mk:active{cursor: grabbing}.mk[aria-pressed=true]::after, .mk:focus-visible::after{content: '';position: absolute;inset: -4px;border: 2px solid var(--cyan);border-radius: 50%}.mk:focus-visible{outline: none}.mk-leak{--y: calc(var(--pipe-y) - 62px);width: 36px;height: 36px;margin: -18px 0 0 -18px;color: #fff;background: #d9414f;box-shadow: 0 2px 10px rgb(0 0 0 / 45%)}.mk-leak svg{width: 20px;height: 20px}.mk-valve{--y: var(--pipe-y);color: #f4a825}.mk-branch{--y: calc(var(--pipe-y) + 52px);color: #9fb3c4}.mk-node{--y: calc(var(--pipe-y) - 38px);color: #c9d6e0}.mk-tag{position: absolute;left: 50%;bottom: calc(100% + 4px);transform: translateX(-50%);padding: 2px 6px;font: 600 11px/1.3 var(--font);white-space: nowrap;color: #fff;background: rgb(1 24 41 / 82%);border-radius: 4px;pointer-events: none}.mk-valve .mk-tag{bottom: auto;top: calc(100% + 4px)}.mk-branch .mk-tag{bottom: auto;top: 50%;left: calc(100% + 4px);transform: translateY(-50%)}.sim-transport{display: flex;align-items: center;gap: 12px;padding: 10px 12px;border-top: 1px solid var(--line)}.sim-transport .app-select{width: 92px}.sim-transport input[type=range]{flex: 1;min-width: 0;min-height: 24px;accent-color: var(--accent)}.sim-time{min-width: 108px;font-size: 13px;font-weight: 600;font-variant-numeric: tabular-nums}.sim-transport .app-btn[disabled], .sim-transport input[disabled], .sim-transport select[disabled]{opacity: 0.45;cursor: not-allowed}.sim-inspector{padding: 12px 16px;font-size: 13px;background: #fff;border: 1px solid var(--line);border-radius: 10px}.sim-inspector h2{margin: 0 0 8px;font-size: 13px;font-weight: 700;letter-spacing: 0;text-transform: none}.sim-inspector .app-fields{padding: 0;grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));align-items: end}.sim-inspector p{margin: 0;color: var(--mu)}.sim-inspector .app-btn{min-height: 40px}.sim-kvs{display: grid;gap: 16px}.sim-kvs h3{margin: 0 0 8px;font-size: 12px;font-weight: 700;color: var(--mu);letter-spacing: 0;text-transform: none}.sim-kvs .kv{grid-template-columns: repeat(5, minmax(0, 1fr))}.sim-kvs .kv dd.is-pending{color: #8a97a4}.sim-layout{display: grid;grid-template-columns: minmax(0, 1fr);gap: 16px}.sim-main, .sim-charts{display: flex;flex-direction: column;gap: 16px;min-width: 0}.sim-main > *, .sim-charts > *{flex: none;min-width: 0}.sim-charts .app-chartbox{height: 260px}@media (min-width: 1200px){.sim-layout{grid-template-columns: minmax(0, 1.45fr) minmax(300px, 1fr);align-items: start}.sim-charts .app-chartbox{height: clamp(170px, 22vh, 250px)}.sim-charts .app-card{padding: 12px 16px}.sim-charts .app-card > h2{margin-bottom: 8px}}@media (max-width: 899px){.sim-stage{height: 250px;--pad: 52px}.sim-caption{font-size: 14px;padding: 12px}.sim-size input[type=range]{width: 120px}.sim-kvs .kv{grid-template-columns: repeat(2, minmax(0, 1fr))}.sim-transport{position: sticky;bottom: 0;flex-wrap: wrap;gap: 8px;background: #fff;row-gap: 6px}.sim-time{min-width: 0}.sim-transport input[type=range]{order: 3;flex: 1 1 100%}.sim-transport .app-select{width: 72px;margin-left: auto}}